天天看点

图片处理的常用三种方法

 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);

    这样就简单的把原来的图片缩放成40X80的1_scale.jpg新图片了。

    第二个常用的功能缩放(cropImage)。

    再初始化一个合适的宽度和高度,以及起始坐标。就是要处理后图片的大小形状(矩形)。

    Rectangle rect = new Rectangle(x, y, 40, 80);

    x,y就是起始点的坐标,一般从图片的左上角开始,默认为0.w,h就是实际的宽度和高度了,不是按比例截取后的宽度和高度。

    这一点与上面的不同。

    再对MagickImage的对象选取方法。进行实际大小的截取。cropImage(rect),参数指图片的范围。

    MagickImage cropped = image.cropImage(rect);

    最后把处理完的图片命名(1_crop.jpg)存放到指定的目录下(F:/images)。

    cropped.setFileName("F:\\images\\1_crop.jpg");

    这样就简单的把原来的图片截取成40X80的1_crop.jpg新图片了。原图片的规格一定大于40X80,要不然截取的有空白了。自己试试就知道了。   

    最后一个常用的功能复制了(copy),这个最简单了。

    然后再把图片信息ImageInfo作为构造MagickImage的参数传入。 MagickImage 是处理图片的主要类。                                                                                                    

    最后把处理完的图片命名(1_copy.jpg)存放到指定的目录下(F:/images)。

    image.setFileName("F:\\images\\1_copy.jpg");

    image.writeImage(info);

    这个没有用到(cloneImage)方法,简单的理解为改变图片的存放路径就可以了,这样就很轻松的实现了copy了,比它自带的cloneImage简单多了。

本文转自 weijie@java 51CTO博客,原文链接:http://blog.51cto.com/weijie/74911,如需转载请自行联系原作者