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

📄 picprocessor.pas

📁 自己写的delphi图像处理程序
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  for i:=0 to x-4 do
  begin
    for j:=0 to y-4 do
    begin
      rx := random(3);
      ry := random(3);
      red := rgbpoint[i+rx, j+ry].r;
      green := rgbpoint[i+rx, j+ry].g;
      blue := rgbpoint[i+rx, j+ry].b;
      MyBitmap.Canvas.Pixels[i,j] := RGB(red, green, blue);
    end;
  end;
  Image2.Picture.Bitmap.Assign(MyBitmap);
end;

procedure TForm1.MNID128Click(Sender: TObject);
var
  red : Integer;
  green : Integer;
  blue : Integer;
begin
  Image2.Picture.Bitmap.Assign(Image1.Picture.Bitmap);
  GetRgbp(Sender);

  i := 1;
  while(i < x-1) do
  begin
    j := 1;
    while(j < y-1) do
    begin
      red := rgbpoint[i, j].r;
      green := rgbpoint[i, j].g;
      blue := rgbpoint[i, j].b;

      MyBitmap.Canvas.Pixels[i, j] := RGB(red, green, blue);
      MyBitmap.Canvas.Pixels[i, j+1] := RGB(red, green, blue);
      MyBitmap.Canvas.Pixels[i+1, j] := RGB(red, green, blue);
      MyBitmap.Canvas.Pixels[i+1, j+1] := RGB(red, green, blue);
      j := j+2;
    end;
    i := i+2;
  end;
  Image2.Picture.Bitmap.Assign(MyBitmap);
end;
procedure TForm1.MNID64Click(Sender: TObject);
var
  red : Integer;
  green : Integer;
  blue : Integer;
  k1 : Integer;
  k2 : Integer;
begin
  Image2.Picture.Bitmap.Assign(Image1.Picture.Bitmap);
  GetRgbp(Sender);

  i := 1;
  while(i < x-1) do
  Begin
    j:=1;
    while(j < y-1) do
    begin
      red := rgbpoint[i, j].r;
      green := rgbpoint[i,j].g;
      blue := rgbpoint[i, j].b;

      for k1:=0 to 4 do
        for k2:=0 to 4 do
          MyBitmap.Canvas.Pixels[i+k1, j+k2] := RGB(red, green, blue);
    j := j+4;
    end;
      i := i+4;
  end;
  Image2.Picture.Bitmap.Assign(MyBitmap);
end;

procedure TForm1.MNID32Click(Sender: TObject);
var
  red : Integer;
  green : Integer;
  blue : Integer;
  k1 : Integer;
  k2 : Integer;
begin
  Image2.Picture.Bitmap.Assign(Image1.Picture.Bitmap);
  GetRgbp(Sender);

  i := 1;
  while(i < x-1) do
  Begin
    j:=1;
    while(j < y-1) do
    begin
      red := rgbpoint[i, j].r;
      green := rgbpoint[i,j].g;
      blue := rgbpoint[i, j].b;

      for k1:=0 to 8 do
        for k2:=0 to 8 do
          MyBitmap.Canvas.Pixels[i+k1, j+k2] := RGB(red, green, blue);
    j := j+8;
    end;
      i := i+8;
  end;
  Image2.Picture.Bitmap.Assign(MyBitmap);
end;

procedure TForm1.MNID16Click(Sender: TObject);
var
  red : Integer;
  green : Integer;
  blue : Integer;
  k1 : Integer;
  k2 : Integer;
begin
  Image2.Picture.Bitmap.Assign(Image1.Picture.Bitmap);
  GetRgbp(Sender);

  i := 1;
  while(i < x-1) do
  Begin
    j:=1;
    while(j < y-1) do
    begin
      red := rgbpoint[i, j].r;
      green := rgbpoint[i,j].g;
      blue := rgbpoint[i, j].b;

      for k1:=0 to 16 do
        for k2:=0 to 16 do
          MyBitmap.Canvas.Pixels[i+k1, j+k2] := RGB(red, green, blue);
    j := j+16;
    end;
      i := i+16;
  end;
  Image2.Picture.Bitmap.Assign(MyBitmap);
end;

procedure TForm1.MNIRTranClick(Sender: TObject);
var
  red : Integer;
  green : Integer;
  blue : Integer;
begin
  Image2.Picture.Bitmap.Assign(Image1.Picture.Bitmap);
  GetRgbp(Sender);

  for i:=1 to x-1 do
  begin
    for j:=1 to y-1 do
    begin
      red := rgbpoint[i,j].r;
      //green := rgbpoint[i,j].g;
      //blue := rgbpoint[i,j].b;
      MyBitmap.Canvas.Pixels[i, j] := RGB(red, 0, 0);
    end;
  end;
  Image2.Picture.Bitmap.Assign(MyBitmap);
end;

procedure TForm1.MNIGTranClick(Sender: TObject);
var
  red : Integer;
  green : Integer;
  blue : Integer;
begin
  Image2.Picture.Bitmap.Assign(Image1.Picture.Bitmap);
  GetRgbp(Sender);

  for i:=1 to x-1 do
  begin
    for j:=1 to y-1 do
    begin
      //red := rgbpoint[i,j].r;
      green := rgbpoint[i,j].g;
      //blue := rgbpoint[i,j].b;
      MyBitmap.Canvas.Pixels[i, j] := RGB(0,green,0);
    end;
  end;
  Image2.Picture.Bitmap.Assign(MyBitmap);
end;

procedure TForm1.MNIBTranClick(Sender: TObject);
var
  red : Integer;
  green : Integer;
  blue : Integer;
begin
  Image2.Picture.Bitmap.Assign(Image1.Picture.Bitmap);
  GetRgbp(Sender);

  for i:=1 to x-1 do
  begin
    for j:=1 to y-1 do
    begin
      //red := rgbpoint[i,j].r;
      //green := rgbpoint[i,j].g;
      blue := rgbpoint[i,j].b;
      MyBitmap.Canvas.Pixels[i, j] := RGB(0, 0, blue);
    end;
  end;
  Image2.Picture.Bitmap.Assign(MyBitmap);
end;

procedure TForm1.MNIGrayTranClick(Sender: TObject);
var
  red : Integer;
  green : Integer;
  blue : Integer;
  gray : Integer;
begin
  Image2.Picture.Bitmap.Assign(Image1.Picture.Bitmap);
  GetRgbp(Sender);

  for i:=1 to x-1 do
  begin
    for j:=1 to y-1 do
    begin
      red := rgbpoint[i,j].r;
      green := rgbpoint[i,j].g;
      blue := rgbpoint[i,j].b;
      gray := (red + green + blue) div 3;
      MyBitmap.Canvas.Pixels[i, j] := RGB(gray, gray, gray);
    end;
  end;
  Image2.Picture.Bitmap.Assign(MyBitmap);
end;

procedure TForm1.MNILumIncClick(Sender: TObject);
var
  red : Integer;
  green : Integer;
  blue : Integer;
  LumColor : Integer;
begin
  Image2.Picture.Bitmap.Assign(Image1.Picture.Bitmap);
  GetRgbp(Sender);
  LumColor := 20;
  for i:=1 to x-1 do
  begin
    for j:=1 to y-1 do
    begin
      red := rgbpoint[i, j].r;
      green := rgbpoint[i, j].g;
      blue := rgbpoint[i, j].b;
      red := red+LumColor;
      if(red > 255) then
        red:=255;
      green := green+LumColor;
      if(green > 255) then
        green:=255;
      blue := blue+LumColor;
      if(blue > 255) then
        blue:=255;
        MyBitmap.Canvas.Pixels[i,j] := RGB(red, green, blue);
    end;
  end;
  Image2.Picture.Bitmap.Assign(MyBitmap);
end;

procedure TForm1.MNILumDecClick(Sender: TObject);
var
  red : Integer;
  green : Integer;
  blue : Integer;
  LumColor : Integer;
begin
  Image2.Picture.Bitmap.Assign(Image1.Picture.Bitmap);
  GetRgbp(Sender);
  LumColor := 20;
  for i:=1 to x-1 do
  begin
    for j:=1 to y-1 do
    begin
      red := rgbpoint[i, j].r;
      green := rgbpoint[i, j].g;
      blue := rgbpoint[i, j].b;
      red := red-LumColor;
      if(red < 0) then
        red:=0;
      green := green-LumColor;
      if(green < 0) then
        green:=0;
      blue := blue-LumColor;
      if(blue < 0) then
        blue:=0;
        MyBitmap.Canvas.Pixels[i,j] := RGB(red, green, blue);
    end;
  end;
  Image2.Picture.Bitmap.Assign(MyBitmap);
end;

procedure TForm1.MNIExitClick(Sender: TObject);
begin
  close();
end;
//******************************************************

procedure TForm1.MNIInputClick(Sender: TObject);
var StrR : String;
var StrG : String;
var StrB : String;

begin
  StrR := InputBox('红色参数','请输入一个整数:', '255');
  StrG := InputBox('绿色参数','请输入一个整数:', '255');
  StrB := InputBox('蓝色参数','请输入一个整数:', '255');
  {IntR := 255;
  IntG := 255;
  IntB := 255;}
  {try
    IntR := strtoint(StrR);
    IntG := strtoint(StrG);
    IntB := strtoint(StrB);
  except
    on MyError : EConvertError do
     //SetColorOfScrToDef();
  end;}
end;

procedure TForm1.MNIScreenClick(Sender: TObject);
begin
  //PicProcessor.Form2.FormCreate(Sender);
  //PicProcessor.Form2.show;
  //Form2.Show;
  // S := 200;
  //showcursor(false);
  //MouseHide:=true;
  //screen.Cursor := crNone;
  //Form2.show;

  Form3.show;
  //FormShow(Sender);
end;
//******************************************************

end.

⌨️ 快捷键说明

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