`
henry406
  • 浏览: 115790 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

调整bufferedimage大小

    博客分类:
  • java
 
阅读更多
     /**
     * 调整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;
    }
分享到:
评论

相关推荐

    Java Image转BufferedImage

    例如,你可以直接修改`BufferedImage`的像素颜色、调整图像大小、应用滤镜效果等。 要将`Image`转换为`BufferedImage`,你可以使用以下方法: ```java import java.awt.image.BufferedImage; import java.awt....

    JAVA实现的图片大小随意拉动调整

    本示例中的"JAVA实现的图片大小随意拉动调整"着重讲解了如何利用Swing来实现图片的动态缩放功能,让用户可以自由调整图片的大小。这个功能在很多应用中都非常实用,比如图像查看器、编辑器或者任何需要展示可调整...

    java语言实现的修改图片大小

    最后,使用`Graphics2D`将原始图像绘制到新图像上,调整其大小,然后保存新的图像。 6. **优化与性能** 对于大量图像处理,可以考虑使用多线程或者缓存策略来提高性能。例如,可以将图像的缩放操作放在一个单独的...

    java将图片变成指定大小

    在Java编程中,调整图像大小是一项常见的任务,特别是在处理用户上传的图片或优化网站资源时。这个过程通常称为“缩放”图片。本文将详细解释如何使用Java将图片转换为指定大小,无论原始图片尺寸如何。 首先,我们...

    用java如何把图片处理到指定大小

    在日常的软件开发中,经常会遇到对图片进行处理的需求,比如调整图片大小、裁剪图片等。本文将详细介绍如何使用Java实现图片处理,具体包括图片的尺寸调整和指定位置的裁剪。 #### 1. 调整图片尺寸 在Java中,可以...

    java 图片水印 改变图片大小

    将上述知识点结合,我们可以创建一个Struts2 Action,接受用户上传的图片,然后在服务器端对图片进行处理,如添加水印并调整大小。首先,Action类需要声明一个`File`类型的字段和对应的字符串字段,用于接收文件。...

    java处理图片大小等比例缩放,自定义修改图片大小,截取,水印

    在Java编程语言中,处理图片是一项常见的任务,包括调整图片大小、等比例缩放、裁剪、压缩以及添加水印等。以下将详细介绍这些知识点: 1. **等比例缩放图片**: 在Java中,我们可以使用`java.awt.image....

    java 使用ImageIO.writer从BufferedImage生成jpeg图像遇到问题总结及解决

    - 在某些情况下,为了优化图像的输出质量,可以对BufferedImage对象做预处理,比如调整图像大小或调整图像的采样率等。 总结起来,使用ImageIO.writer从BufferedImage生成JPEG图像时,应当遵守Java的规范和API的...

    java 水印(水印适应图片大小,但个别图片太小不支持)

    - **文字水印的字体大小动态调整**:根据图片宽度调整文字水印的字体大小,保持合适的比例。 - **避免覆盖关键内容**:尽量将水印放置在不会遮挡图片重要信息的区域。 通过以上步骤和策略,我们可以在Java中实现...

    java内存泄漏解决

    1. **调整永久代大小**:首先确定当前永久代的实际使用情况,然后通过`-XX:MaxPermSize`参数调整永久代的最大值。 2. **优化类加载机制**:检查是否存在不必要的类加载,减少类的数量。 3. **使用Metaspace**:升级...

    程序控制图片大小

    本篇文章将详细介绍如何通过Java程序来实现图片大小的调整,以及如何进行图片的缩略比例操作。 首先,Java提供了丰富的库支持图片处理,其中最常用的是Java Advanced Imaging (JAI) 和 Java 2D API。JAI 是一个扩展...

    java中图片的大小改变

    调整图像大小通常涉及创建一个新的`BufferedImage`实例,设定新的宽度和高度,然后使用`Graphics2D`类进行绘制。以下是一个简单的示例: ```java int newWidth = 800; int newHeight = (originalImage.getHeight...

    java图片压缩处理(可以压缩为任意大小

    本主题将深入探讨如何使用Java实现图片压缩,并能够将其调整到任意大小,同时保持图片质量并避免变形。 首先,我们需要理解图片压缩的基本原理。图片压缩主要有两种类型:有损压缩和无损压缩。有损压缩会牺牲一部分...

    java代码保存宽高不变压缩图片(失真不大).docx

    EGCodec.createJPEGEncoder(out); JPEGEncodeParam param = ...总的来说,这段Java代码提供了一个实用的工具,能够在不失真过大(通过调整压缩质量)的前提下,根据图片原始大小智能地压缩图片,满足不同场景的需求。

    java图片压缩文件大小图片大小(支持gif动态图)

    调整尺寸可以通过设置`BufferedImage`的宽度和高度实现,而降低质量则涉及到JPEG或PNG的编码参数。以下是压缩图片的示例代码: ```java public void compressImage(BufferedImage image, String outputFilePath, ...

    java图片上传、控制大小、宽度高度和图片裁剪并保存

    在Java编程中,图片处理是一项常见的任务,包括...综上所述,Java提供了一套丰富的API和第三方库来实现图片上传、大小控制、宽高调整和裁剪等功能。通过熟练掌握这些技术,开发者可以构建出高效、安全的图片处理系统。

    Java提取EXCEL图片重命名并改变像素大小

    这个功能对于那些需要批量处理Excel文件中的图像,比如统一调整格式、优化存储大小或适应不同展示环境的场景非常有用。下面我们将详细探讨实现这一功能所涉及的关键知识点。 首先,我们需要使用Java的库来读取和...

    java处理裁剪图片(更改图片大小)

    我们可以利用这个类的`getSubimage()`方法进行裁剪,以及`scale()`或`RescaleOp`类来调整图片尺寸。以下是一个简单的示例: 1. **裁剪图片**: ```java BufferedImage originalImage = ImageIO.read(new File(...

    java对图片改变大小,png防止变黑,加圆角 圆角外透明

    在Java编程中,处理图像是一项常见的任务,包括调整图片大小、改变颜色效果以及添加特殊样式,如圆角和透明效果。本篇文章将深入探讨如何在Java中实现这些功能,特别是针对PNG格式的图片,因为PNG格式支持透明度,但...

    缩小图片大小,并无刷新上传

    接下来是图片大小的调整。Java提供了强大的图像处理库,如JavaFX或Apache Batik,但在这里我们将使用Java自带的`javax.imageio.ImageIO`和`java.awt.image.BufferedImage`。以下是一个简单的图片缩放方法: ```java...

Global site tag (gtag.js) - Google Analytics