相关疑难解决方法(0)

如何将ScanLine属性用于24位位图?

如何使用ScanLine属性进行24位位图像素操作?为什么我更喜欢使用它而不是经常使用的Pixels属性?

delphi image-processing

32
推荐指数
1
解决办法
2万
查看次数

更改位图的像素颜色

我试图改变位图的像素颜色,如果它是白色的.我写了以下代码.但它非常慢!我想检查像素的颜色是否为白色,如果是白色,则将颜色更改为黑色.

任何人都可以提出更好的方法吗?

procedure TForm1.Button1Click(Sender: TObject);
var
  BitMap1 : TBitmap;
  X, Y, Size : Integer;

  P: Cardinal;
begin
  BitMap1 := TBitmap.Create;
  bitMap1.LoadFromFile('image1.bmp');

  for Y := 0 to Bitmap1.Height - 1 do
  begin
    for X := 0 to Bitmap1.width  * size - 1 do
    begin
    p := BitMap1.Canvas.Pixels[X,Y];
    if p = 255 then
      BitMap1.Canvas.Pixels[X,Y] := 0;

    end;
  end;

  Image1.Picture.Assign(BitMap1);
end;
Run Code Online (Sandbox Code Playgroud)

delphi image

6
推荐指数
2
解决办法
1万
查看次数

为什么调用GetMem会导致内存泄漏?

我有这个代码,看看我的前景窗口是否是SDImainframe.

Function Active_window_mf() :Boolean;
var
  FromClass: PChar;
begin

  MFhandle := GetForeGroundWindow;
  GetMem(FromClass, 100);
  GetClassName(MFhandle, PChar(FromClass), 800);
  if StrPas(FromClass) = 'SDIMainFrame' then
    result := true;
end;
Run Code Online (Sandbox Code Playgroud)

但是,MADExcept报告Getmem功能存在问题.任何人都可以建议,我的代码有什么问题?

delphi

1
推荐指数
1
解决办法
1055
查看次数

标签 统计

delphi ×3

image ×1

image-processing ×1