⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gradecolorimage.pas

📁 机房管理系统 是用VB设计的简单的管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
      B := fromb + MulDiv(I, diffb, 255);
      bm.Canvas.Brush.Color := RGB(R, G, B);   //Plug colors into brush
      bm.Canvas.FillRect(Rect(Trunc(x1),Trunc(y1),Trunc(x2),Trunc(y2)));
    end;
       end;

  rgsVerticalCenter:
     begin
     Haf := bm.Height Div 2;
     ColorRect.Left := 0;
     ColorRect.Right := bm.Width;
     for I := 0 to Haf do begin
      ColorRect.Top := MulDiv (I, Haf, Haf);
      ColorRect.Bottom := MulDiv (I + 1, Haf, Haf);
      R := fromr + MulDiv(I, diffr, Haf);
      G := fromg + MulDiv(I, diffg, Haf);
      B := fromb + MulDiv(I, diffb, Haf);
      bm.Canvas.Brush.Color := RGB(R, G, B);
      bm.Canvas.FillRect(ColorRect);
      ColorRect.Top := bm.Height - (MulDiv (I, Haf, Haf));
      ColorRect.Bottom := bm.Height - (MulDiv (I + 1, Haf, Haf));
      bm.Canvas.FillRect(ColorRect);
    end;

     end;
  rgsHorizontalCenter:
     begin
     Haf := bm.Width Div 2;
     ColorRect.Top := 0;
     ColorRect.Bottom := bm.Height;
     for I := 0 to Haf do begin
      ColorRect.Left := MulDiv (I, Haf, Haf);
      ColorRect.Right := MulDiv (I + 1, Haf, Haf);
      R := fromr + MulDiv(I, diffr, Haf);
      G := fromg + MulDiv(I, diffg, Haf);
      B := fromb + MulDiv(I, diffb, Haf);
      bm.Canvas.Brush.Color := RGB(R, G, B);
      bm.Canvas.FillRect(ColorRect);
      ColorRect.Left := bm.Width - (MulDiv (I, Haf, Haf));
      ColorRect.Right := bm.Width - (MulDiv (I + 1, Haf, Haf));
      bm.Canvas.FillRect(ColorRect);
     end;
     end;
  rgsNWSE:
     begin
     bm.canvas.Pen.Style := psclear;
     bm.canvas.Pen.Mode := pmCopy;
     Pw := (bm.Width+bm.height) / 255;
     for I := 0 to 254 do begin         //Make trapeziums of color
      x0 := i*Pw;
      if (x0<bm.width) then y0:=0 else
        begin
        y0:=x0-bm.width;
        x0:=bm.width-1;
        end;
      x1:=(i+1)*pw;
      if (x1<bm.width) then begin
        y1:=0;
        end
        else begin
        y1:=x1-bm.width;
        x1:=bm.width-1;
        end;
      y2:=i*pw;
      if (y2<bm.height) then x2:=0 else
        begin
        x2:=y2-bm.height;
        y2:=bm.height-1;
        end;
      y3:=(i+1)*pw;
      if (y3<bm.height) then x3:=0 else
        begin
        x3:=y3-bm.height;
        y3:=bm.height-1;
        end;
      R := fromr + MulDiv(I, diffr, 255);    //Find the RGB values
      G := fromg + MulDiv(I, diffg, 255);
      B := fromb + MulDiv(I, diffb, 255);
      bm.canvas.Brush.Color := RGB(R, G, B);   //Plug colors into brush
      points[0]:=point(Trunc(x0),Trunc(y0));
      points[1]:=point(Trunc(x1),Trunc(y1));
      points[3]:=point(Trunc(x2),Trunc(y2));
      points[2]:=point(Trunc(x3),Trunc(y3));
      bm.canvas.polygon(points);
    end;
       end;

  rgsNWSW:
     begin
     bm.canvas.Pen.Style := psclear;
     bm.canvas.Pen.Mode := pmCopy;
     Pw := (bm.width+bm.height) / 255;
    for I := 0 to 254 do begin         //Make trapeziums of color
      y0 := i*Pw;
      if (y0<bm.height) then x0:=bm.width-1 else
        begin
        x0:=bm.width-1-(y0-bm.height);
        y0:=bm.height-1;
        end;
      y1:=(i+1)*pw;
      if (y1<bm.height) then x1:=bm.width-1 else
        begin
        x1:=bm.width-1;
        end;
      x2:=bm.width-1-(i*pw);
      if (x2>0) then y2:=0 else
        begin
        y2:=-x2;
        x2:=0;
        end;
      x3:=bm.width-1-((i+1)*pw);
      if (x3>0) then y3:=0 else
        begin
        y3:=-x3;
        x3:=0;
        end;
      R := fromr + MulDiv(I, diffr, 255);    //Find the RGB values
      G := fromg + MulDiv(I, diffg, 255);
      B := fromb + MulDiv(I, diffb, 255);
      bm.canvas.Brush.Color := RGB(R, G, B);   //Plug colors into brush
      points[0]:=point(Trunc(x0),Trunc(y0));
      points[1]:=point(Trunc(x1),Trunc(y1));
      points[3]:=point(Trunc(x2),Trunc(y2));
      points[2]:=point(Trunc(x3),Trunc(y3));
      bm.canvas.polygon(points);
    end;
       end;

  rgsSENW:
     begin
     bm.canvas.Pen.Style := psclear;
    bm.canvas.Pen.Mode := pmCopy;
    Pw := (bm.width+bm.height) / 255;
    for I := 0 to 254 do begin         //Make trapeziums of color
      y0 := bm.height-1-(i*Pw);
      if (y0>0) then x0:=bm.width-1 else
        begin
        x0:=bm.width-1+y0;
        y0:=0;
        end;
      y1:=bm.height-1-((i+1)*pw);
      if (y1>0) then x1:=bm.width-1 else
        begin
        x1:=bm.width-1+y1;
        y1:=0;
        end;
      x2:=bm.width-1-(i*pw);
      if (x2>0) then y2:=bm.height-1 else
        begin
        y2:=bm.height-1+x2;
        x2:=0;
        end;
      x3:=bm.width-1-((i+1)*pw);
      if (x3>0) then y3:=bm.height-1 else
        begin
        y3:=bm.height-1+x3;
        x3:=0;
        end;
      R := fromr + MulDiv(I, diffr, 255);    //Find the RGB values
      G := fromg + MulDiv(I, diffg, 255);
      B := fromb + MulDiv(I, diffb, 255);
      bm.canvas.Brush.Color := RGB(R, G, B);   //Plug colors into brush
      points[0]:=point(Trunc(x0),Trunc(y0));
      points[1]:=point(Trunc(x1),Trunc(y1));
      points[3]:=point(Trunc(x2),Trunc(y2));
      points[2]:=point(Trunc(x3),Trunc(y3));
      bm.canvas.polygon(points);
    end;
     end;

  rgsSWNE:
     begin
     bm.canvas.Pen.Style := psclear;
     bm.canvas.Pen.Mode := pmCopy;
     Pw := (bm.width+bm.height) / 255;
     for I := 0 to 254 do begin         //Make trapeziums of color
      y0 := bm.height-1-(i*Pw);
      if (y0>0) then x0:=0 else
        begin
        x0:=-y0;
        y0:=0;
        end;
      y1:=bm.height-1-((i+1)*pw);
      if (y1>0) then x1:=0 else
        begin
        x1:=-y1;
        y1:=0;
        end;
      x2:=(i*pw);
      if (x2<bm.width) then y2:=bm.height-1 else
        begin
        y2:=bm.height-1-(x2-bm.width);
        x2:=bm.width-1;
        end;
      x3:=(i+1)*pw;
      if (x3<bm.width) then y3:=bm.height-1 else
        begin
        y3:=bm.height-1-(x3-bm.width);
        x3:=bm.width-1;
        end;
      R := fromr + MulDiv(I, diffr, 255);    //Find the RGB values
      G := fromg + MulDiv(I, diffg, 255);
      B := fromb + MulDiv(I, diffb, 255);
      bm.canvas.Brush.Color := RGB(R, G, B);   //Plug colors into brush
      points[0]:=point(Trunc(x0),Trunc(y0));
      points[1]:=point(Trunc(x1),Trunc(y1));
      points[3]:=point(Trunc(x2),Trunc(y2));
      points[2]:=point(Trunc(x3),Trunc(y3));
      bm.canvas.polygon(points);
    end;
     end;

  rgssweet:
     begin
     bm.canvas.Pen.Style := psclear;
     bm.canvas.Pen.Mode := pmCopy;
     for i:=0 to 255 do
         begin
         x1:=muldiv(i,bm.Width,255);
         x2:=muldiv(i+1,bm.Width,255);
         y1:=muldiv(i,bm.Height,255);
         y2:=muldiv(i+1,bm.Height,255);

         R := fromr + MulDiv(I, diffr, 255);    //Find the RGB values
         G := fromg + MulDiv(I, diffg, 255);
         B := fromb + MulDiv(I, diffb, 255);

         bm.Canvas.Brush.Color:=RGB(R,G,B);

         points[0]:=point(bm.Width div 2,bm.Height div 2);
         points[1]:=point(0,trunc(y1));
         points[2]:=point(0,trunc(y2));
         points[3]:=points[2];
         bm.canvas.polygon(points);

         points[0]:=point(bm.Width div 2,bm.Height div 2);
         points[1]:=point(bm.Width,bm.Height-trunc(y1));
         points[2]:=point(bm.Width,bm.Height-trunc(y2));
         points[3]:=points[2];
         bm.canvas.polygon(points);

         points[0]:=point(bm.Width div 2,bm.Height div 2);
         points[1]:=point(trunc(x1),0);
         points[2]:=point(trunc(x2),0);
         points[3]:=points[2];
         bm.canvas.polygon(points);

         points[0]:=point(bm.Width div 2,bm.Height div 2);
         points[1]:=point(bm.Width-trunc(x1),bm.Height);
         points[2]:=point(bm.Width-trunc(x2),bm.Height);
         points[3]:=points[2];
         bm.canvas.polygon(points);
         end;
     end;

  rgsStrange:
     begin
     bm.canvas.Pen.Style := psclear;
     bm.canvas.Pen.Mode := pmCopy;
     for i:=0 to 255 do
         begin
         x1:=muldiv(i,bm.Width,255);
         y1:=muldiv(i,bm.Height,255);

         R := fromr + MulDiv(I, diffr, 255);    //Find the RGB values
         G := fromg + MulDiv(I, diffg, 255);
         B := fromb + MulDiv(I, diffb, 255);

         bm.Canvas.Brush.Color:=RGB(R,G,B);

         points[0]:=point(trunc(x1),trunc(y1));
         points[1]:=point(0,bm.Height-trunc(y1));
         points[2]:=point(bm.Width,bm.Height);
         points[3]:=point(bm.width,0);
         bm.canvas.polygon(points);
         end;
     end;

  rgsNeo:
     begin
     bm.canvas.Pen.Style := psclear;
     bm.canvas.Pen.Mode := pmCopy;
     for i:=0 to 255 do
         begin
         x1:=muldiv(i,bm.Width div 2,255);
         y1:=muldiv(i,bm.Height div 2,255);

         R := fromr + MulDiv(I, diffr, 255);    //Find the RGB values
         G := fromg + MulDiv(I, diffg, 255);
         B := fromb + MulDiv(I, diffb, 255);

         bm.Canvas.Brush.Color:=RGB(R,G,B);

         points[0]:=point(trunc(x1),trunc(y1));
         points[1]:=point(0,bm.Height);
         points[2]:=point(bm.Width-trunc(x1),bm.Height-trunc(y1));
         points[3]:=point(bm.width,0);
         bm.canvas.polygon(points);
         end;
     end;
  end;
  BitBlt(Canvas.Handle,0,0,bm.Width,bm.Height,bm.Canvas.Handle,0,0,SRCCOPY);
  //Canvas.CopyRect(arect,bm.Canvas,arect);
  bm.Free;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -