图片处理的常用三种方法

简介:
 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简单多了。
 









本文转自 weijie@java 51CTO博客,原文链接:http://blog.51cto.com/weijie/74911,如需转载请自行联系原作者
目录
相关文章
|
8月前
|
Java 对象存储
【工具类】使用阿里oss实现图片、视频、文档上传
【工具类】使用阿里oss实现图片、视频、文档上传
272 0
|
对象存储
阿里云OSS的图片参数m_lfit是干什么的?底层原理是什么?
阿里云OSS的图片参数m_lfit是干什么的?底层原理是什么?
911 0
|
异构计算 Python
|
计算机视觉 异构计算
|
19天前
|
编解码 Serverless 应用服务中间件
大咖与小白的日常:利用函数计算触发OSS来给图片自动加水印
小白的另一个身份居然是顶流站姐!她要给爱豆搭建一个网站,分享生图精修图。上面的所有图片都希望自动加上水印。这在很多论坛社区里是基本操作了,大咖教小白用函数计算+OSS轻松实现。
大咖与小白的日常:利用函数计算触发OSS来给图片自动加水印
|
存储 人工智能 自然语言处理
关于图片处理的那些事
修饰照片俗称修图,是指使用各种方式和技术修改照片以达到预期的目的。在这个过程中,必不可少的会使用到图片工具,市面上的图片工具很多,然而大部分都是商用化较高的,在其中找到...
96 0
|
缓存 Java 数据安全/隐私保护
给图片加水印?这是我见过最简单的实现方式
大家好,我是指北君。 在项目中经常有需要在图片上添加水印的需求以及在某些场合下需要身份证图片,这时就可以对身份证上加水印防止被用于其他用途,java 在处理图片水印时不需要额外的第三方包,使用 BufferedImage 和 Graphics2D 就可以搞定
给图片加水印?这是我见过最简单的实现方式
|
开发工具 对象存储 UED
IMM支持视频截帧和生成雪碧图功能
智能媒体管理已经支持了视频截帧和雪碧图生成功能,可以方便的在一次请求完成视频首帧、封面、雪碧图生成工作。
1081 0
IMM支持视频截帧和生成雪碧图功能
|
编解码 弹性计算 Serverless
FGAP加速图片和视频转码
场景1:图片转码 移动互联网早已进入读图时代,目前的图片都是JPEG格式,尺寸太大,导致传输占用更多的网络带宽,花费更多的传输时间并占用更多的存储空间。JPEG图片转码为WebP/HEIF需要消耗大量的计算能力。使用阿里云FaaS加速图片转码解决方案将使客户TCO降低约40%。 场景2:视频转码 到2022年,82%的IP流量都将来自于视频的录制、上传和播放。HEVC/H.265无论从画质还是码率,都比H.264有明显的优势,但是将视频将H.264编码为H.265将消耗巨大的算力。使用阿里云FaaS加速视频转码将显著降低视频大小,节省网络流量,降低成本。
607 0
FGAP加速图片和视频转码