如何局部放大jpg图片的某一个矩形区域?然后把放大的区域存入一个单独的jpg文件??(100分)

  • 主题发起人 主题发起人 gouer
  • 开始时间 开始时间
你首先将选择的矩形区域位图赋予一个TBitmap变量bmp1,
然后利用StretchBlt进行缩放,缩放得到的位图为bmp2,
最后将bmp2转化为TJpeg类型保存。
 
我的意思是通过这样选择一个区域,但是不刷新!
procedure TMainFrm.CurImageMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
OldX:=X;
OldY:=Y;
CurImage.Canvas.Pen.Color:=clred;
CurImage.Canvas.LineTo(x,y);
end;

procedure TMainFrm.CurImageMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
if Shift=[ssLeft] then
begin
CurImage.Canvas.LineTo(X,OldY);
CurImage.Canvas.LineTo(X,Y);
CurImage.Canvas.LineTo(OldX,Y);
CurImage.Canvas.LineTo(OldX,OldY);
end;
end;
 
Bmp:=TBitmap.Create;
Bmp.Width:=NWidth; //You should set it to your expected value;
Bmp.Height:=NHeight; //You should set it to your expected value;
Bmp.Canvas.CopyRect(Rect(0,0,Bmp.Width-1,Bmp.Height-1),CurImage.Canvas,Rect(OldX,OldY,X,Y));
jpg:=TJpegImage.Create;
try
with jpg do begin Assign(Bmp); SaveToFile(FileName) end;
finally
jpg.Free; Bmp.Free
end;

另外:
不用象你那样去画线;用CurImage.Canvas.Rectagle画矩形更好;画的时候,MouseDown、
MouseMove响应时都用异或方式画,以便擦除。
 
http://www.truevcl.com
有TMagnify
 
CopyRect即可
 
用PHOTOSHOP6.0软件打开图片,点击旁边工具栏里的矩形图标,在选定的区域点鼠标右键复制下
来后,新一个图形文件,把它复制上去,然后用图象栏里的图象大小来改变图象的大小,最
后点击文件栏把图片另存为jpg文件即可!
 
TMagnify 不是控件阿! 他使用的控件需要银子吗?where有免费的?
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部