改变大小
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();
}
}
分享到:
相关推荐
《网店商品图片与视频拍摄及处理》—08商品图片处理.pdf《网店商品图片与视频拍摄及处理》—08商品图片处理.pdf《网店商品图片与视频拍摄及处理》—08商品图片处理.pdf《网店商品图片与视频拍摄及处理》—08商品图片...
SimpleImage是阿里巴巴的一个Java图片处理的类库,可以实现图片缩略、水印等处理。 SimpleImage中的ImageRender是图片处理的基类,它是一个抽象类,我们看到,该类中定义了一个抽象方法render(),同时持有一个对...
图片处理工具图片处理工具图片处理工具图片处理工具图片处理工具图片处理工具图片处理工具图片处理工具图片处理工具图片处理工具图片处理工具图片处理工具图片处理工具
为淘客专门做的,为你带来皇冠、、、美图淘淘是一款专为网店卖家设计的批量图片处理软件,包括图片处理、添加装饰素材、边框、文字等图片处理的常用功能。美图淘淘可同时对多张图片进行处理,将原先需要重复劳动的...
VC图片处理,具体请看代码!很简单的 VC图片处理,具体请看代码!很简单的 VC图片处理,具体请看代码!很简单的
是本人整理的所有图片处理的代码,包括 图片尺寸 大小 等比缩放 加水印 ....
PHP图片处理(上传、加水印、缩略图),对图片的处理
我的图片处理我的图片处理我的图片处理我的图片处理我的图片处理我的图片处理我的图片处理
Android图片处理效果demo, 圆角,倒影
一款图片处理的超级牛的软件! 可以化腐朽为神奇!!!试一试就知道!!!
这个里面是图片处理系列的一个集合demo,里面包含了图片处理系列的所有代码,写的比较乱,没有整理,希望对大家有帮助。
php 图片处理类 图片上传 缩略图 实用的 直接可用
Java图片处理工具ImageMagick
vb图片处理vb图片处理vb图片处理vb图片处理vb图片处理vb图片处理
linux下图片处理工具
Image batch dispose批量图片处理工具,支持对批量图片的加文字,批量改变图片大小,批量更名,可以批量旋转图片,可以批量压缩图片文件大小,可以批量锐化图片,批量转换图片格式(bmp,jpg,gif,png,.tiff等)为Jpg格式....
C#图片处理工具,可以实现对图片的曝光度、灰度、柔化、锐度的处理。
一款简单实用的JS拖动滑块对比图片处理前后效果代码,通过拖动滑块来将原图和处理后的图片两张图片进行对比。
php gd库图片处理类,添加水印,旋转图片,
一个简单的图片处理程序,可以实现图片的翻转变化,大小改变和像素改变,使用了Qt里面的多线程技术。