delphi 处理png
场景:关于delphi处理PNG图片的取像素有关问题
关于delphi处理PNG图片的取像素问题
我从网上找了一段二值化的代码,片jpg图片的时候没有什么问题,但处理PNG图片的时候就出现了问题
经过上的图片处理完了,处理图片宽度也不够

下面是原图

都转成了bmp了,但是像素点好像不一样,请指定一下要怎么处理,得到二值化图
------解决方案--------------------
png是矢量图,不应该用此种方法。
关于delphi处理PNG图片的取像素问题
我从网上找了一段二值化的代码,片jpg图片的时候没有什么问题,但处理PNG图片的时候就出现了问题
newbmp := TBitmap.Create;
newbmp.Assign(bitmap);
newbmp.PixelFormat := pf32bit;
for Y := 0 to bitmap.Height - 1 do
begin
P := newbmp.ScanLine[Y];
for X := 0 to bitmap.Width - 1 do
begin
gray := Round(0.299 * P[3 * X + 2] + 0.587 * P[3 * X + 1] + 0.11 * P[3 * X]);
//gray := Round(P[X]);
// 灰化的计算公式
if (gray > 128) then
gray := 255
else
gray := 0;
// 128为阙值
//P[X] := gray;
P[3 * X + 2] := gray;
P[3 * X + 1] := gray;
P[3 * X] := gray;
end;
end;
bitmap.Assign(newbmp);
经过上的图片处理完了,处理图片宽度也不够
下面是原图
都转成了bmp了,但是像素点好像不一样,请指定一下要怎么处理,得到二值化图
------解决方案--------------------
png是矢量图,不应该用此种方法。