老生长谈(怎样把图片改成黑白,jpg格式的)。

silon2000 2001-08-15 05:05:27
各位高手怎样利用Image组件把一个彩色图片转换成黑白的分数不够可以再加。
...全文
202 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
风轻狂 2001-08-16
  • 打赏
  • 举报
回复
是变成灰度图象,还是2值图象
结果可是大大了不一样呀
如果是后者,把Transparent设成true就行了
silon2000 2001-08-16
  • 打赏
  • 举报
回复
听说Image组件有个属性可以设为黑白,请问那位高手知道.
silon2000 2001-08-15
  • 打赏
  • 举报
回复
to ->Kingron(戒网中……) 
能不能简单的写一句做为例子让小弟看一下。
ddeng 2001-08-15
  • 打赏
  • 举报
回复
jpg图片载入后还得送入TBitmap进行处理,给你一段C++Builder的源程序,你自己改吧:
(这儿处理完是24位位图)

// 灰化
void __stdcall Gray(Graphics::TBitmap *Bitmap) {
if(Bitmap->PixelFormat!=pf24bit) {
Bitmap->PixelFormat = pf24bit;
}
for(int j=0; j<Bitmap->Height; j++) {
Byte *ptr = (Byte *)Bitmap->ScanLine[j];
for(int i=0; i<Bitmap->Width*3; i+=3) {
int gray = (int)ptr[i]*0.114+(int)ptr[i+1]*0.587+(int)ptr[i+2]*0.299;
if(gray>255) {
gray = 255;
}
ptr[i] = (Byte)gray;
ptr[i+1] = (Byte)gray;
ptr[i+2] = (Byte)gray;
}
}
}
Kingron 2001-08-15
  • 打赏
  • 举报
回复
转换成BMP,设置pixelformat即可,然后转换回来即可。
silon2000 2001-08-15
  • 打赏
  • 举报
回复
没有高手吗。

5,402

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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