关于delphi处理PNG图片的取像素问题

回味一下 2013-09-13 12:17:11
我从网上找了一段二值化的代码,片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了,但是像素点好像不一样,请指定一下要怎么处理,得到二值化图
...全文
693 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
missMeyo 2014-12-13
  • 打赏
  • 举报
回复
我也想问像素怎么处理
lhy 2013-09-13
  • 打赏
  • 举报
回复
png是矢量图,不应该用此种方法。
回味一下 2013-09-13
  • 打赏
  • 举报
回复
那用什么方法啊,能提供点资料吗

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧