【关于对图像文件进行旋转、缩放处理】 分不够再加 ( 积分: 100 )

  • 主题发起人 主题发起人 teams
  • 开始时间 开始时间
T

teams

Unregistered / Unconfirmed
GUEST, unregistred user!
对Bmp、Jpg图像文件处理:
1)图象处理过程中速度要快,能按实际大小进行旋转、缩放。
2)能用鼠标的滚轮或按左右键以上下左右方向移动进行缩放大小调整。
3)能将图像缩放保存,缩放后的图像质量不要太差。

好的意见建议都可以,但尽量能给出相关的源码,200分不够再加!
 
对Bmp、Jpg图像文件处理:
1)图象处理过程中速度要快,能按实际大小进行旋转、缩放。
2)能用鼠标的滚轮或按左右键以上下左右方向移动进行缩放大小调整。
3)能将图像缩放保存,缩放后的图像质量不要太差。

好的意见建议都可以,但尽量能给出相关的源码,200分不够再加!
 
网上能找到很多这里代码的, 我试过Graphics32的东西, 应该可以满足你的需求;
 
我在大富翁里搜过这方面的问题,没好的解决代码。
Graphics32 是图像控件吗?让我下一个看看。
 
可不可以用CopyRect来实现翻转
 
Images控件可以處理你的圖片。
 
这些应该会有比较成熟的三方控件,自己完成的话最麻烦的是图像的质量这一块,可能涉及一些算法的问题,呵呵,还是找个控件搞定算了.
 
to: ff_ff 、bbscom
有源码示例参考一下?
-------------------------------------
我在论坛里搜到 卷起千堆雪、vine 两位富翁有关于缩略图、局部放大控件?
能发一份,谢谢 teams@163.com
 
有没有人用delphi做过pdf英文识别的,好像做不到吧,高手请指点
 
找到了缩放的代码。

出自: 咸菜蛋炒饭

//保存JPEG的缩略图
procedure SavePic(SourceFileName,DescFileName: String);
const
MaxWidth = 200 ;
MaxHigth = 200 ;
var
jpg: TJPEGImage;
bmp: TBitmap;
SourceJpg: TJPEGImage;
Width, Height,tmpInt: Integer;
begin
try
bmp := TBitmap.Create;
SourceJpg := TJPEGImage.Create;
Jpg:= TJPEGImage.Create;
//读取源文件
SourceJpg.LoadFromFile(SourceFileName);
//计算缩小比例
if SourceJpg.Width >= SourceJpg.Height then
tmpInt := Round(SourceJpg.Width div MaxWidth)
else
tmpInt := Round(SourceJpg.Height div MaxHigth) ;
Width := SourceJpg.Width div tmpInt ;
Height := SourceJpg.Height div tmpInt ;
//缩小
bmp.Width := Width;
bmp.Height := Height;
bmp.PixelFormat := pf24bit;
bmp.Canvas.StretchDraw(Rect(0,0,Width,Height), SourceJpg);
//保存
jpg.Assign(bmp);
jpg.SaveToFile(DescFileName);
finally
bmp.Free;
jpg.Free;
SourceJpg.Free;
end;
end;
 
GDI的缩放就不要指望质量了
好的缩放是要很多代码的
有了合适的缩放代码,旋转可以用相似的算法来做
 
SavePic实现了保存缩略图。
用鼠标的滚轮或按左右键以上下左右方向移动进行调整图像大小还没有解决

谁有好的更好的办法!
 
cnpack源码包里就有一个专门针对图像操作的例子,有源码的。自己下回来看看嘛
www.cnpack.org
 
to app2001

那个例子实现了滤镜、旋转等功能。好像没有实现我的第2个问题!
 
速度要快的话,不能用TIMAGE类把图片全部读进来。
你怎么这么做:
1、用BMP类把图片全部读进来
2、用STRETCHDRAW一类的函数把图片的一个部分画出来
3、移动时改变原点
4、缩放时改变放大率
所以你所要做的就是写一个函数,把一张图的一部分按一定的缩放率,按一定的原点位置画出来
 
我用Graphics控件只能实现整幅图放大或缩小(速度可以),但不能像Photoshop 那样能局部放大~~
 
to 释迦
是不得写很长代码才能实现~
 
不是啊,我以前写过,不到100行代码的
参数差不多是
输入、输出的BMP
显示内容的左上点(原点)
缩放率
输入图片的长、宽

写的时候注意不要超越边界
 
强烈建议 用 cnPack, 里面有源码。
 
在哪个单元?
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部