java 图片拼接_Java分割拼接图片
分割图片
private static void splitImage() throws IOException {
String originalImg = "C:\\img\\split\\a380_1280x1024.jpg";
// 读入大图
File file = new File(originalImg);
FileInputStream fis = new FileInputStream(file);
BufferedImage image = ImageIO.read(fis);
// 分割成4*4(16)个小图
int rows = 4;
int cols = 4;
int chunks = rows * cols;
// 计算每个小图的宽度和高度
int chunkWidth = image.getWidth() / cols;
int chunkHeight = image.getHeight() / rows;
int count = 0;
BufferedImage imgs[] = new BufferedImage[chunks];
for (int x = 0; x < rows; x++) {
for (int y = 0; y < cols; y++) {
//设置小图的大小和类型
imgs[count] = new BufferedImage(chunkWidth, chunkHeight, image.getType());
//写入图像内容
Graphics2D gr = imgs[count++].createGraphics();
gr.drawImage(image, 0, 0,
chunkWidth, chunkHeight,
chunkWidth* y, chunkHeight * x,
chunkWidth * y + chunkWidth,
chunkHeight * x + chunkHeight, null);
gr.dispose();
}
}
// 输出小图
for (int i = 0; i < imgs.length; i++) {
ImageIO.write(imgs[i], "jpg", new File("C:\\img\\split\\img" + i + ".jpg"));
}
System.out.println("完成分割!");
}
拼接图片
private static void mergeImage() throws IOException {
int rows = 2;
int cols = 2;
int chunks = rows * cols;
int chunkWidth, chunkHeight;
int type;
//读入小图
File[] imgFiles = new File[chunks];
for (int i = 0; i < chunks; i++) {
imgFiles[i] = new File("C:\\img\\merge\\img" + i + ".jpg");
}
//创建BufferedImage
BufferedImage[] buffImages = new BufferedImage[chunks];
for (int i = 0; i < chunks; i++) {
buffImages[i] = ImageIO.read(imgFiles[i]);
}
type = buffImages[0].getType();
chunkWidth = buffImages[0].getWidth();
chunkHeight = buffImages[0].getHeight();
//设置拼接后图的大小和类型
BufferedImage finalImg = new BufferedImage(chunkWidth * cols, chunkHeight * rows, type);
//写入图像内容
int num = 0;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
finalImg.createGraphics().drawImage(buffImages[num], chunkWidth * j, chunkHeight * i, null);
num++;
}
}
//输出拼接后的图像
ImageIO.write(finalImg, "jpeg", new File("C:\\img\\merge\\finalImg.jpg"));
System.out.println("完成拼接!");
}
大小: 41.1 KB
大小: 32.9 KB
大小: 15 KB
分享到:
2012-08-21 15:51
浏览 9947
评论
2 楼
州孓123
2015-08-25
大神我拼的图,图片品质不是优啊,图片有些失贞,和用ps拼的图有些差距。请问怎么才能拼出正常的图啊。谢谢啦
非常好,简单好用,有图有code!
java 图片拼接_Java分割拼接图片相关推荐
- java 图片拼接_java 拼接文字和图片
public static void test2() { try { // 读取第一张图片 // File fileOne = new File("D:\\qq.jpg"); // ...
- java 图片拼接_Java拼接多张图片,可以连接在一起 | 学步园
/** * Java拼接多张图片 * * @param pics * @param type * @param dst_pic * @return */ public static boolean m ...
- java 渐进式_JAVA转换jpg图片为渐进式图片
很早之前看到一篇<web前端图片极限优化策略>,了解有jpg分为baseline-jpeg和preogressive-jpeg. 具体的区别如下: baseline-jpeg: 在文件较大 ...
- java 锯齿_java 生产文字图片边缘有锯齿状
java生产文字图片时如果文字边缘有锯齿状 可以添加 gd.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.V ...
- java水印_Java实现给图片添加图片水印,文字水印及马赛克的方法示例
本文实例讲述了Java实现给图片添加图片水印,文字水印及马赛克的方法.分享给大家供大家参考,具体如下: 可以在eclipse中新建个Utils类,把以下代码复制进去直接使用,以下方法实现单个或多个水印 ...
- java拼接图片大小_Java实现图片拼接(注:图片需长宽一致)
/** * 拼接图片(注:图片需长宽一致) * @param files img1 ,img2 * @param type 1:横向拼接 2:纵向拼接 * @param targetFile 合成新的 ...
- java获取服务器上的图片进行拼接
1.从服务器下载图片保存到本地 package com.example.demo.util;import java.io.File; import java.io.FileOutputStream; ...
- android 图片拼接工具,拼接图片工具app
截图拼接是一款非常好用的手机长图拼接工具,它的功能非常强大,支持图片拼接,无论是横向还是竖向拼接,一键设置,在这里小伙伴可以随时参与图片制作,帮助小伙伴制作出最佳的图片效果,操作也是很简单的,非常的方 ...
- java中文件处理之图片_Java中的文件处理
java中文件处理之图片 File Handing in java comes under IO operations. Java IO package java.io classes are spe ...
最新文章
- 获取PHP中的完整URL
- 阿里云kafka使用记录(python版本)
- 一个C#写的调用外部进程类
- 常见的几种内排序算法以及实现(C语言)(转)
- Flowable工作流入门
- Ubuntu下挂载NTFS分区错误修复
- 话里话外:中小型装备制造企业竞争优势构建之路
- ECSHOP模板设置只有登录用户才能查看商品详情内容
- 关于BUCK-BOOST电路的负压生成
- 科罗拉多大学波尔得分校计算机科学,科罗拉多大学波尔得分校专业
- 持NPDP和PMP证书,可以享受深圳、北京等多项福利!
- 数学建模与数据分析中的主成分分析
- VBA向单元格输入双引号
- Python 随堂练习
- 为docker容器单独分配ip
- windows 指纹识别不可用
- Android WebView显示广告
- 静态Hash解决数据颠簸问题
- 设计模式概述以及 23种设计模式的介绍
- 在非金融应用中在哪里使用区块链?