改变大小
File picFile = new File("C:/pic/yui2.jpg");
FileOutputStream fos = new FileOutputStream(picFile);
BufferedOutputStream bos = new BufferedOutputStream(fos);
File picFileInput = new File("C:/pic/yui.jpg");
FileInputStream fis = new FileInputStream(picFileInput);
BufferedInputStream bis = new BufferedInputStream(fis);
BufferedImage bi = ImageIO.read(bis);
BufferedImage bo = new BufferedImage(512, 384,
BufferedImage.TYPE_INT_RGB);
Image image = bi.getScaledInstance(512, 384, Image.SCALE_REPLICATE);
bo.getGraphics().drawImage(image, 0, 0, null);
ImageIO.write(bo, "jpg", bos);
bos.close();
fos.close();
切割
/** *//**
* 图像切割
* @param srcImageFile 源图像地址
* @param descDir 切片目标文件夹
* @param destWidth 目标切片宽度
* @param destHeight 目标切片高度
*/
public static void cut(String srcImageFile, String descDir, int destWidth, int destHeight)
...{
try
...{
Image img;
ImageFilter cropFilter;
// 读取源图像
BufferedImage bi = ImageIO.read(new File(srcImageFile));
int srcWidth = bi.getHeight(); // 源图宽度
int srcHeight = bi.getWidth(); // 源图高度
if (srcWidth > destWidth && srcHeight > destHeight)
...{
Image image = bi.getScaledInstance(srcWidth, srcHeight, Image.SCALE_DEFAULT);
destWidth = 200; // 切片宽度
destHeight = 150; // 切片高度
int cols = 0; // 切片横向数量
int rows = 0; // 切片纵向数量
// 计算切片的横向和纵向数量
if (srcWidth % destWidth == 0)
...{
cols = srcWidth / destWidth;
}
else
...{
cols = (int) Math.floor(srcWidth / destWidth) + 1;
}
if (srcHeight % destHeight == 0)
...{
rows = srcHeight / destHeight;
}
else
...{
rows = (int) Math.floor(srcHeight / destHeight) + 1;
}
// 循环建立切片
// 改进的想法:是否可用多线程加快切割速度
for (int i = 0; i < rows; i++)
...{
for (int j = 0; j < cols; j++)
...{
// 四个参数分别为图像起点坐标和宽高
// 即: CropImageFilter(int x,int y,int width,int height)
cropFilter = new CropImageFilter(j * 200, i * 150, destWidth, destHeight);
img = Toolkit.getDefaultToolkit().createImage(
new FilteredImageSource(image.getSource(), cropFilter));
BufferedImage tag = new BufferedImage(destWidth, destHeight, BufferedImage.TYPE_INT_RGB);
Graphics g = tag.getGraphics();
g.drawImage(img, 0, 0, null); // 绘制缩小后的图
g.dispose();
// 输出为文件
ImageIO.write(tag, "JPEG", new File(descDir + "pre_map_" + i + "_" + j + ".jpg"));
}
}
}
}
catch (Exception e)
...{
e.printStackTrace();
}
}
分享到:
相关推荐
在VC++(Visual C++)开发环境中,图片处理是一项常见的任务,它涉及到图像的加载、显示、编辑和保存等操作。VC++提供了多种方法来处理图片,这些方法主要基于Windows API函数、MFC(Microsoft Foundation Classes)...
《网店商品图片与视频拍摄及处理》—08商品图片处理.pdf《网店商品图片与视频拍摄及处理》—08商品图片处理.pdf《网店商品图片与视频拍摄及处理》—08商品图片处理.pdf《网店商品图片与视频拍摄及处理》—08商品图片...
SimpleImage是阿里巴巴的一个Java图片处理的类库,可以实现图片缩略、水印等处理。 SimpleImage中的ImageRender是图片处理的基类,它是一个抽象类,我们看到,该类中定义了一个抽象方法render(),同时持有一个对...
在安卓平台上,手绘图片处理和画板应用的开发是一个有趣且富有挑战性的领域。"安卓手绘图片处理画板相关-Gallery图片叠层处理和图片轮训模糊处理.rar"这个压缩包文件显然包含了与这一主题相关的源代码和资源,旨在...
在Android开发中,图片处理是一项常见的任务,涉及到用户体验和应用性能。"android图片处理集合demo"是一个示例项目,集中展示了多种图片处理技术。虽然代码可能没有经过精心整理,但仍然能为开发者提供宝贵的参考。...
在IT领域,图片处理是一项常见的任务,而"图片处理小工具"正是一款专注于解决这些问题的软件。这款工具专为用户提供了便捷的批量处理功能,能够有效地优化和调整大量的图像文件,提升工作效率。以下是对该软件及其...
为淘客专门做的,为你带来皇冠、、、美图淘淘是一款专为网店卖家设计的批量图片处理软件,包括图片处理、添加装饰素材、边框、文字等图片处理的常用功能。美图淘淘可同时对多张图片进行处理,将原先需要重复劳动的...
1. **图片缩放**:缩放是图片处理中最基础的功能,允许开发者调整图片的大小以适应不同的显示环境。21PHP图片处理类可能包含了自定义比例或固定尺寸的缩放方法,同时考虑到保持图片的原始宽高比,避免拉伸变形。 2....
ASP.NET 图片处理技术是Web开发中的一个重要环节,它涵盖了从上传、裁剪、缩放、旋转到水印添加等一系列图像操作。在ASP.NET框架下,开发者可以利用各种工具和库来实现这些功能,为网站提供丰富的图像服务。本文将...
【图片处理程序(Qt)】是一个基于Qt框架开发的简易应用程序,主要功能是实现对图像进行翻转、调整大小和改变像素的操作。Qt是一个跨平台的C++图形用户界面库,广泛应用于桌面应用、移动应用以及嵌入式系统中。在这...
在IT领域,图片处理是一项常见的任务,特别是在设计、摄影或网站开发中。为了提高效率,批量处理工具应运而生,比如"批量图片处理工具-批量裁剪,批量色彩处理,滤镜.7z"这款软件。这款工具专门针对图片进行自动化...
在PHP开发中,图片处理是一项常见的任务,包括但不限于图片缩放、添加水印、裁剪、旋转等。这里我们讨论的是一款名为“21PHP...在实际项目中,根据需求选择合适的功能,结合这个类库,可以轻松实现高效的图片处理流程。
《基于Canvas的图片处理类库Daycaca:深入解析与应用》 Daycaca是一款强大的JavaScript图片处理类库,它充分利用HTML5中的Canvas元素,为开发者提供了便捷的图片压缩和裁剪功能。在Web开发中,尤其是在用户上传图片...
在IT行业中,图片处理是一项常见的任务,特别是在软件开发和网页设计中。PowerBuilder(简称pb)是一款强大的可视化编程工具,尤其适用于开发数据库应用系统。在这个“pb图片处理”的主题中,我们将探讨如何利用...
PHP图片处理(上传、加水印、缩略图),对图片的处理
然而,Word的内置功能可能无法满足所有高级需求,这时,"word插件,图片处理专用"就显得尤为重要。 Word插件是一种能够扩展Word功能的小型软件应用,它们通常由第三方开发者创建,旨在解决特定问题或提供额外的工具...
在Android开发中,图片处理是一项常见的任务,涉及到用户界面的美观、用户体验的优化以及资源的高效利用。这个压缩包文件“Android图片处理源码”很可能包含了一些用于Android平台的图片处理库或者示例代码,帮助...
本指南主要聚焦于华为云OBS的图片处理特性,帮助用户理解和利用这些特性优化图片管理和应用。 1.1 什么是图片处理? 图片处理是指在华为云OBS上对存储的图片进行一系列操作,如缩放、裁剪、旋转、水印添加、格式...
在IT行业中,图片处理是一项常见的任务,特别是在网页设计、图形设计、数据分析以及各种应用程序的开发中。本主题主要关注如何实现图片的放大、缩小、翻转、添加水印以及镜像效果。以下是对这些功能的详细说明: 1....
php 图片处理类 图片上传 缩略图 实用的 直接可用