关于JPEG(100分)

  • 主题发起人 主题发起人 逍遥子
  • 开始时间 开始时间

逍遥子

Unregistered / Unconfirmed
GUEST, unregistred user!
请问如何从一幅JPEG图象中取出一部分并把其写入另一image中.
也就是用一个image显示一幅JPEG的一块画面。
 
动态创建一个Image对象(用不着显示),读入Jpeg文件,
然后对其Canvas进行操作,画到目标Image控件上
 
用canvas可以解救你!容易啊!
 
Canvas.CopyRect
 
首先Tjpegimage并没有canvas,所以不能对其canvas进行操作,再就是动态创建
的image并不能读取JPEG格式的图片,弹出UNKNOW EXTENION的错误对话框。
请大家帮忙!!
谢谢!
 
记得使用assign,tbitmap可以和tjpeg里的一个东西assign
但是我忘了是什么!
找找看
 
我试了一下,动态创建的image也可以读取JPEG格式的图片,弹出UNKNOW EXTENION的错误对话框
是因为你没有包含Jpeg单元,在Uses部分加上:Jpeg就行了。
 
来自:房客 时间:01-1-17 22:40:57 ID:441256
1.拉伸TBITMAP到另一个TBITMAP 再传过去
stretchblt(BitMap1.canvas.handle,0,0,BitMap2.Width,BitMap2.Height,BitMap2.canvas.handle,0,0,BitMap1.Width,BitMap1.Height,srcand);

2.创建一指定大小TBitMap,BitMap2,用CopyRect, 将BitMap1中指定区域Copy到BitMap2中,最后用BitMap2的SaveToFile,将BitMap2保存即可.具体代码如下:
var
BitMap1, BitMap2: TBitMap;
YourRect: TRect;
begin
BitMap1 := TBitMap.Create;
BitMap1.LoadFromFile('OriginPictureFileName');
BitMap2 := TBitMap.Create;
BitMap2.Height := YourRect.Bottom - YourRect.Top;
BitMap2.Width := YourRect.Right - YourRect.Left;
BitMap2.CopyMode := cmSrcCopy;
BitMap2.CopyRect(YourRect, BitMap1.Canvas, YourRect);
BitMap2.SaveToFile('NewPictureFileName');
BitMap2.Free;
BitMap1.Free;
end
 
逍遥子:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
请认真阅读大富翁论坛规则说明 http://www.delphibbs.com/delphibbs/rules.htm
 
Canvas.CopyRect
 
Canvas.CopyRect
 
接受答案了.
 
后退
顶部