批量替换图片某颜色时速度慢,大家看一下我这种方法是不是老土了 ( 积分: 15 )

  • 主题发起人 主题发起人 ashow07
  • 开始时间 开始时间
A

ashow07

Unregistered / Unconfirmed
GUEST, unregistred user!
想做个批量处理图片上某颜色时,功能可以实现,但处理起来太慢了,占用cpu过高,时间长,
有没有什么好点的方法

我的大至方法如下,看一下是不是老土了

转换gif to bmp

for i=0 to 宽度

begin

for y=0 to 高度

begin

if Bitmap.Canvas.pixels[x,y]=某一颜色 then Bitmap.Canvas.pixels[x,y]:=另一种颜色;

end;
end;
把bmp转成gif 存盘
 
我也是这么干的 ................................
 
但这样很慢,要是先把图片二进值读到数组中,再替换,再转回来是不是快一点
 
Bitmap.Canvas.pixels[x,y] 取整个颜色很慢的,要想快,用scanline
 
用scanline ,但是如果一行里有几种颜色怎么办,兄弟可不可以详说一下
 
试试将Bitmap.Canvas在循环前给With 了.
是否有改善.(看起来更土了!呵呵).
方法似乎也外不到那里去啊.
 
gdi绝对慢,
scanline吧,如果你的图是pf8bit,那么每个字节就是颜色,
如果pf32bit,那每4字节就是你那种颜色.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
619
import
I
I
回复
0
查看
634
import
I
后退
顶部