注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 负载均衡技术沙龙问答汇集
 帮助

图片处理的常用三种方法


2008-05-05 09:28:10
 标签:图片 处理 Magick   [推送到技术圈]

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://weijie.blog.51cto.com/340746/74911
图片处理的常用三种方法
     MagickImage大家可能都用过,它主要处理一些图片,它可以处理90多种的图片类型.它的功能非常强大,而我们在实际的应用中,主要用到它的缩放,截取,复制功能。其他的一些如写入文字,加背景色,旋转。。。用的少。 
 
    第一个常用的功能缩放(scaleImage)。
 
    首先初始化一个ImageInfo对象,就是加载要处理的图片路径.
    ImageInfo info= new ImageInfo(“F:\\images\\1.jpg”); 
    然后再把图片信息ImageInfo作为构造MagickImage的参数传入。 MagickImage 是处理图片的主要类。                                                                                                   
    MagickImage image= new MagickImage(info);
    再对MagickImage的对象选取方法。进行缩放。scaleImage(w, h),第一个参数指按比例缩放后的宽度,第二个就是高度了。
    MagickImage cropped= image .scaleImage(40, 80);
    最后把处理完的图片命名(1_scale.jpg)存放到指定的目录下(F:/images)
    cropped.setFileName("F:\\images\\1_scale.jpg");
    writeImage指定源图片的ImageInfo 对象。
    cropped.writeImage(info);
   
    这样就简单的把原来的图片缩放成40X801_scale.jpg新图片了。
 
    第二个常用的功能缩放(cropImage)。
 
    首先初始化一个ImageInfo对象,就是加载要处理的图片路径.
    ImageInfo info= new ImageInfo(“F:\\images\\1.jpg”); 
    再初始化一个合适的宽度和高度,以及起始坐标。就是要处理后图片的大小形状(矩形)
    Rectangle rect = new Rectangle(x, y, 40, 80);
    x,y就是起始点的坐标,一般从图片的左上角开始,默认为0.w,h就是实际的宽度和高度了,不是按比例截取后的宽度和高度。
    这一点与上面的不同。
    然后再把图片信息ImageInfo作为构造MagickImage的参数传入。 MagickImage 是处理图片的主要类。                                                                                                   
    MagickImage image= new MagickImage(info);
    再对MagickImage的对象选取方法。进行实际大小的截取。cropImage(rect),参数指图片的范围。
    MagickImage cropped = image.cropImage(rect);
    最后把处理完的图片命名(1_crop.jpg)存放到指定的目录下(F:/images)
    cropped.setFileName("F:\\images\\1_crop.jpg");
    writeImage指定源图片的ImageInfo 对象。
    cropped.writeImage(info);
   
    这样就简单的把原来的图片截取成40X801_crop.jpg新图片了。原图片的规格一定大于40X80,要不然截取的有空白了。自己试试就知道了。   
  
    最后一个常用的功能复制了(copy),这个最简单了。
 
    首先初始化一个ImageInfo对象,就是加载要处理的图片路径.
    ImageInfo info= new ImageInfo(“F:\\images\\1.jpg”); 
  
    然后再把图片信息ImageInfo作为构造MagickImage的参数传入。 MagickImage 是处理图片的主要类。                                                                                                    
    MagickImage image= new MagickImage(info);
 
    最后把处理完的图片命名(1_copy.jpg)存放到指定的目录下(F:/images)
    image.setFileName("F:\\images\\1_copy.jpg");
    writeImage指定源图片的ImageInfo 对象。
    image.writeImage(info);
    这个没有用到(cloneImage)方法,简单的理解为改变图片的存放路径就可以了,这样就很轻松的实现了copy了,比它自带的cloneImage简单多了。
 

本文出自 “魏杰的技术专栏” 博客,请务必保留此出处http://weijie.blog.51cto.com/340746/74911





    相关文章
    文章评论
 
 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: