使用Java合并图片、修改DPI
项目中有时候需要对图片进行DPI、合并、拼接等的处理:
package com.snow.web.a_test;import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException;import javax.imageio.ImageIO;import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGEncodeParam; import com.sun.image.codec.jpeg.JPEGImageEncoder;public class Test {private static String path = "F:\\";public static void main(String[] args) throws Exception {System.out.println("======================================="); // String path = "F:\\test.jpg"; // File files = new File(path); // handleDpi(files, 300, 300); // String path = "F:\\"; File file1 = new File(path, "1.jpg"); File file2 = new File(path, "2.png"); // mosaicImage(file1, file2); mergeImage(file1, file2); }/** * 改变图片DPI * * @param file * @param xDensity * @param yDensity * @throws ImageReadException */ public static void handleDpi(File file, int xDensity, int yDensity){ try { BufferedImage image = ImageIO.read(file); JPEGImageEncoder jpegEncoder = JPEGCodec.createJPEGEncoder(new FileOutputStream(file)); JPEGEncodeParam jpegEncodeParam = jpegEncoder.getDefaultJPEGEncodeParam(image); jpegEncodeParam.setDensityUnit(JPEGEncodeParam.DENSITY_UNIT_DOTS_INCH); jpegEncoder.setJPEGEncodeParam(jpegEncodeParam); jpegEncodeParam.setQuality(0.75f, false); jpegEncodeParam.setXDensity(xDensity); jpegEncodeParam.setYDensity(yDensity); jpegEncoder.encode(image, jpegEncodeParam); image.flush(); } catch (IOException e) { e.printStackTrace(); } } /*** 图片拼接* @param file1 左边* @param file2 右边* @throws IOException*/public static void mosaicImage(File file1, File file2) throws IOException { BufferedImage image1 = ImageIO.read(file1); BufferedImage image2 = ImageIO.read(file2); BufferedImage combined = new BufferedImage(image1.getWidth() * 2, image1.getHeight(), BufferedImage.TYPE_INT_RGB); // paint both images, preserving the alpha channels Graphics g = combined.getGraphics(); g.drawImage(image1, 0, 0, null); g.drawImage(image2, image1.getWidth(), 0, null); // Save as new image ImageIO.write(combined, "JPG", new File(path, "3.jpg")); } /*** 图片合并* @param file1 左边* @param file2 右边* @throws IOException*/public static void mergeImage(File file1, File file2) throws IOException { BufferedImage image1 = ImageIO.read(file1); BufferedImage image2 = ImageIO.read(file2); BufferedImage combined = new BufferedImage(image1.getWidth(), image1.getHeight(), BufferedImage.TYPE_INT_RGB); // paint both images, preserving the alpha channels Graphics g = combined.getGraphics(); System.out.println(image2.getData());g.drawImage(image1, 0, 0, null); g.drawImage(image2, 0, 0, image1.getWidth(), image1.getHeight(), null); // Save as new image ImageIO.write(combined, "JPG", new File(path, "4.jpg")); } }
使用Java合并图片、修改DPI相关推荐
- java指定图片的dpi和存储大小kb
java指定图片的dpi和存储大小kb google图片处理插件 java代码(只需要修改下文件路径往里面存图片就行了) 参考文章 公司需求,将文件夹下面的所有图片dpi设置为300,存储大小为90到 ...
- 什么是DPI?如何给图片修改DPI?
平时在工作生活当中,图片是大家必不可少的东西,那么在平时使用图片的时候,经常会遇到一种参数叫DPI,那么什么是图片的DPI呢?图片DPI也可以叫做图片分辨率,一般指的是图像每英寸长度内的像素点数,一般 ...
- java 改变图片的DPI
代码如下: public class test01 {private static int DPI = 300;public static void main(String[] args){Strin ...
- 如何修改图片的dpi?图片怎么调dpi?
有没有好用的图片修改dpi工具(dpi修改工具_手机图片修改分辨率-压缩啦)?推荐压缩啦的图片修改dpi功能,使用浏览器就可以在线修改图片dpi,一起来看看具体步骤吧. 1.用手机.电脑浏览器打开压缩 ...
- Java 常用图片处理合集
Java 常用图片处理合集 JDK类库创建一张简单图片 辨别图片类型 判断文件是否为图片格式 java加水印 JDK类库裁剪图片 Java合并图片 Java修改图片格式 Java修改图片尺寸 Java ...
- 怎么样调整图片大小?图片修改工具怎么用?
怎么样调整图片大小?专业的图片修改工具可以节省很多时间,这里推荐使用压缩啦的图片改大小(在线修改图片尺寸大小工具-压缩图)功能,操作简单易上手,来看看怎么操作吧. 1.打开压缩图首页选择图片改大小. ...
- 如何修改图片的dpi?图片的dpi怎么调?
大家在日常工作中使用图片的时候有没有遇到过需要调整图片dpi的情况呢?大家在遇到这种情况时候都是怎么办的呢?下面小编为大家推荐一款图片dpi修改器(https://www.yasuotu.com/dp ...
- 多张图片怎么同时修改dpi?教你一键批量修改图片dpi
当我们需要修改图片dpi时,图片又比较多一张一张的修改费时又费力的.那么有没有什么办法可以批量修改图片dpi呢?这个时候我推荐大家使用图片dpi批量修改(https://www.yasuotu.com ...
- 怎么改变图片的dpi的大小?如何修改照片dpi值?
考试报名平台在上传照片时,最麻烦的就是需要图片dpi修改,下面就给大家分享一个在线修改分辨率的方法,使用压缩啦的图片dpi修改工具,一键修改非常简单. 1.选择压缩啦网站中的修改分辨率工具. 2.上 ...
最新文章
- 【目标检测】(6) YOLOV2 目标检测在V1基础上的改进
- 深度学习领域四个不可不知的重大突破
- python 的类装饰器
- linux进入文件全文搜索命令,Linux 文件查找命令详解
- tcpdump抓包最常用的命令
- 海豚浏览器历年笔试题
- CodeProject上的两个简单绘图程序
- 《机器视觉算法与应用》第3章 机器视觉算法之模板匹配——学习笔记
- 创建FB-定义接口(基础版)
- 大话主流分布式文件系统!
- 如何解包编译重新打包boot.img System.img(转自百度文库)
- 华为云数据中心建设全面复工进行中,预计2021年投入使用
- 服务器系统安装蓝牙驱动,安装蓝牙设备 - Windows drivers | Microsoft Docs
- 使用Wake On Lan远程唤醒
- 【shaderforge小实例】 轮廓内发光
- vista主机故障_Vista RC1安装日记-将我的主机升级到Windows Vista RC1
- win10 自带截图工具 SnippingTool
- 上海社科院:沪30岁以下青年购房压力
- 短语a slap on the wrist
- python怎么读取excel文件-Python读写Excel文件方法介绍
热门文章
- 《现代教育技术》Win8版发布 项目总结
- GIF动画 汇总帖子+实例
- HDU 1847 Good Luck in CET-4 Everybody!(组合博弈)
- 2019.4.26学习笔记(路由器router)
- ONES 万事联合创始人 amp; CTO 冯斌:企业服务产品的探索实践
- SQLAdvisor美团SQL索引优化建议工具
- 【DataBase】【SQL语言】【第三天】
- Linux 编辑器——上古神器vim
- 系统linux/redhat6.5 zabbix 2.47监控nginx1.8.0 (下)
- SQL Server游标的使用【转】