/**
* 调整bufferedimage大小
* @param source BufferedImage 原始image
* @param targetW int 目标宽
* @param targetH int 目标高
* @param flag boolean 是否同比例调整
* @return BufferedImage 返回新image
*/
private static BufferedImage resizeBufferedImage(BufferedImage source, int targetW, int targetH, boolean flag) {
int type = source.getType();
BufferedImage target = null;
double sx = (double) targetW / source.getWidth();
double sy = (double) targetH / source.getHeight();
if (flag && sx > sy) {
sx = sy;
targetW = (int) (sx * source.getWidth());
} else if(flag && sx <= sy){
sy = sx;
targetH = (int) (sy * source.getHeight());
}
if (type == BufferedImage.TYPE_CUSTOM) { // handmade
ColorModel cm = source.getColorModel();
WritableRaster raster = cm.createCompatibleWritableRaster(targetW, targetH);
boolean alphaPremultiplied = cm.isAlphaPremultiplied();
target = new BufferedImage(cm, raster, alphaPremultiplied, null);
} else {
target = new BufferedImage(targetW, targetH, type);
}
Graphics2D g = target.createGraphics();
g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
g.drawRenderedImage(source, AffineTransform.getScaleInstance(sx, sy));
g.dispose();
return target;
}
分享到:
相关推荐
这个类可以实现Image到BufferedImage的向下转换,方便各位开发各类需要图像处理的程序。
public static BufferedImage iplToBufImgData(IplImage ipl,BufferedImage image ) public static IplImage BufImgToIplData(IplImage ipl,BufferedImage bi)
BufferedImage 保存 BMP格式 文件
主要介绍了java中ImageReader和BufferedImage获取图片尺寸实例,具有一定借鉴价值,需要的朋友可以参考下
所实现的效果是首先给你四张已经由ps处理过的图片,然后通过重新将这四张图还原
BufferedImage—-生成一张验证码图片 最近看了一下BufferedImage类的使用,感觉挺好玩的,BuferedImage类是Image这个抽象类的实现类,作为一个带缓冲区(Buffered,看这个单词好像就是缓冲的意思吧)图像类,主要是在...
本篇文章是对在android中,如何从JPEG生成BufferedImage的解决方法进行了详细的分析介绍,需要的朋友参考下
java结合OpenCV实现Mat与BufferedImage互相转换
主要介绍了java 使用ImageIO.writer从BufferedImage生成jpeg图像遇到问题总结及解决的相关资料,需要的朋友可以参考下
用java如何把图片处理到指定大小 切割程序如下: public void cut(String srcImageFile,FileOutputStream fileout, int w, int h, int x1, int y1, int sw, int sh) { // TODO Auto-generated method stub try ...
主要介绍了java中如何BufferedImage判断图像通道顺序并转RGB/BGR的相关资料,需要的朋友可以参考下
java内存泄漏解决java内存泄漏解决java内存泄漏解决
image=new BufferedImage(200,200,BufferedImage.TYPE_INT_RGB); ggg=image.createGraphics(); Rectangle2D rect=new Rectangle2D.Double(0,0,200,200); ggg.setColor(getBackground()); ggg.fill(rect); ...
通过ImageIO读取文件,用BufferedImage设置图片大小,再绘制出图片,最后生成图片文件保存到相应位置
使用BitmapFactory加载图片时,如果图片过大可能引起OutOfmemory溢出的问题。解决办法。
可以将图像无锯齿放大,清晰,适合看个种图,各种图像格式都支持。
java 处理图像的明暗度 java 处理图像的明暗度 java 处理图像的明暗度
这些模式降低了存储结构图像的内存大小,因为Java 3D避免将图像从应用空间拷贝到图形内存. 在Windows OS环境下,使用OpenGL作为Java 3D优先图像引擎,ImageComponent2D格式应是ImageComponent2D.FORMAT_RGB,...
内含java图片旋转的代码和注释
BufferedImage bufImg = new BufferedImage(20, 20, BufferedImage.TYPE_INT_ARGB_PRE); Graphics2D g2d = bufImg.createGraphics(); g2d.drawImage(srcImg, 0, 0, 20, 20, null); cb.setIcon(new ImageIcon...