比如说截取一个宽高为3000象素的其中宽高300像素的一块?
解决方案 »
- 怎么把Timage 移回来
- 我有一段delphi代码 现在想把里边的窗口改为隐藏
- 怎么自动关闭了?
- 设置ADO控件ConnectionString时遇到问题!“无法定位程序输入点GetTextExtentPointI于动态链接库MSDART.DLL上”
- 在设计一相对大的软件时,是不是将每一FORM都CREAT呢?
- DELPHI6和C++ BUILDER6装在一起的问题
- 关于函数映射的问题,请赐教!!!!!
- 开发activex出现的问题
- 关于socket??
- 急!在dbgrid中,怎样解决”无法为更新行集定为:一些值可能已经在最后读取改变“的错误
- 如何用DBGrid来实现将列中相同值的行进行合并?
- 如何判断数组数据记录重复!
如果要用Canvas的话,就要有个Form或Image吧?,而这个Form或Image如果本身是不可见的,Canvas.CopyRect怎么好象不行啊?
我的代码:
function PruneJPG(sJFile, DJFile: String): Boolean;
var
sJpg, DJpg: TJPEGImage;
bmp1,bmp2: TBitmap;
begin
Result:=true;
try
bmp1:=TBitmap.Create;
bmp2:=TBitmap.Create;
sJpg:=TJPEGImage.Create;
sJpg.LoadFromFile(sJFile);
DJpg:=TJPEGImage.Create;
bmp1.Width:=100;
bmp2.Height:=100;
bmp1.PixelFormat:= pf24bit;
bmp2.PixelFormat:=pf24bit;
bmp2.Assign(sJpg);
bmp1.Canvas.CopyRect(Rect(0,0,100,100),bmp2.Canvas,Rect(0,0,100,100));
Djpg.Assign(bmp1);
djpg.SaveToFile(DJFile);
bmp1.Free;
bmp2.Free;
sJpg.Free;
DJpg.Free;
except
Result:=false;
end;
end;调用:
if PruneJPG('C:\1.jpg','C:\2.jpg') then showMessage('OK');我的目的是剪取1.jpg的一块,形成2.jpg
bmp2.Width := 100;