GIF格式转为位图(100分)

  • 主题发起人 主题发起人 胡清江
  • 开始时间 开始时间

胡清江

Unregistered / Unconfirmed
GUEST, unregistred user!
GIF<<--->>BMP:-(?
 
不要用第三方控件,有没有?
 
不用第三方没有
第三方GifImage
 
可以把JPG文件加入到paradox数据库中
再到处存盘就是BMP文件
 
我不知道我看懂了题目没有
我的想法是用ScanLine读图象,然后保存到另一个.bmp文件中(呵呵,不知道行不行?)
 
看一下GIFIMAGE控件的源码吧! 我相信你很快就会放弃自己的想法,而用这控件来做!
 
uses rxGif;//in RxLIb2.75
.
.
.
.
procedure xxx;
var img1,img2:TImage;
begin
img1:=TImage.Create;
img1.loadfromfile('xxx.gif');
img2:=TImage.Create;
img2.Picture.Assign(Image1.picture);
img1.Destroy;
img2.SavetoFile('xxx.bmp');
img2.Destroy;
end;

end;
 
ht99的答案需要第三方控件RxLIb2.75对Gif的支持。只要可以Load了转换方法是可行的;
只是img1.Destroy;和img2.Destroy;应写成img1.Free;和img2.Free


 

<a href='http://vcl.vclxx.org/DELPHI/D32FREE/DELGIF.ZIP'>http://vcl.vclxx.org/DELPHI/D32FREE/DELGIF.ZIP</a>
去下载一个GIF控件吧,里面有一个TGIFImage类。它有LoadFromStream和SaveToStream方法
,可以同Bitmap交互。自己改造一下吧。
 
谢谢cqhxping。
 
ACDSEE可以转换;
其实没有必要,
因为GIF比BMP省空间的多;
GIF的颜色虽然只有256色(或更少),但每个颜色都是24位真彩;
如果转成BMP就变成24位真彩图了(效果不变),
如果变成256色,失真太大,划不来;
图形是用来显示的;
可显示就行了嘛
 
可人家要BMP总 有自己的打算,否则要来作甚。
既然这样有点是肯定的了,就是需要能显示GIF的控件,不过我觉得HT99
的语句中还应加入两句:
IMG2.TRANSPARENTCOLOR:=$02FFFFFF;
IME2.PIXELSFORMAT:=PF24BIT;
可能效果会好一点,否则会丢颜色吧可能
 
不想用控件也简单嘛,你把别人的东西来remark下嘛。世界上哪有不张嘴就可
以吃饭的???
 
通過BitMap,JepgImage來轉換。
Var
TemBitMap:TBitMap;
TemJepgImage:TJepgImage;
Begin
TemJepgImage:=TJepgImage.Create;
TemJepgImage.LoadFrom('tem.Jpg');
TemBitMap:=TBitMap.Create;
TemBitMap.Assign(TemJepgImage);
TemBitMap.SaveToFile('tem.bmp');
End;
 
后退
顶部