`
carrotzizi
  • 浏览: 7246 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

图片压缩尺寸与大小

    博客分类:
  • JAVA
阅读更多

/**

* 按尺寸质量压缩(测试)

* @param is

* @param to

* @param quality

* @throws IOException

*/

public static void compressQuality(InputStream is, File to, float quality, int maxWidth, int maxHeight) throws IOException{

//压缩大小

BufferedImage image = ImageIO.read(is);

if(image==null)return;

Integer width = image.getWidth();

Integer height = image.getHeight();

if(width>maxWidth || height>maxHeight){

ResampleOp resampleOp = new ResampleOp(DimensionConstrain.createMaxDimension(maxWidth, maxHeight));

image = resampleOp.filter(image, null);

}

// 得到指定Format图片的writer 

Iterator<ImageWriter> iter =  ImageIO.getImageWritersByFormatName("jpeg");

ImageWriter imageWriter = iter.next();

 

// 得到指定writer的输出参数设置(ImageWriteParam )  

        ImageWriteParam iwp = imageWriter.getDefaultWriteParam();  

        iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); // 设置可否压缩  

        iwp.setCompressionQuality(quality); // 设置压缩质量参数  

        iwp.setProgressiveMode(ImageWriteParam.MODE_DISABLED);

        

        ColorModel colorModel = ColorModel.getRGBdefault();  

        // 指定压缩时使用的色彩模式  

        iwp.setDestinationType(new javax.imageio.ImageTypeSpecifier(colorModel,  

                colorModel.createCompatibleSampleModel(16, 16)));

        

        // 开始打包图片,写入byte[]  

        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); // 取得内存输出流  

        IIOImage iIamge = new IIOImage(image, null, null); 

        

        // 此处因为ImageWriter中用来接收write信息的output要求必须是ImageOutput  

        // 通过ImageIo中的静态方法,得到byteArrayOutputStream的ImageOutput  

        imageWriter.setOutput(ImageIO  

                .createImageOutputStream(byteArrayOutputStream));  

        imageWriter.write(null, iIamge, iwp); 

        

        InputStream sbs = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());

        ImageIO.write(ImageIO.read(sbs), "png", to);

        

}

分享到:
评论

相关推荐

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

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

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

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

    图片尺寸及大小压缩工具

    图片尺寸及大小压缩工具,不需要PS就可以改变图片尺寸及大小

    图片大小压缩(java尺寸、质量)

    通过java实现对图片按照尺寸、像素质量实现对图片的压缩处理,并可以对图片制定宽高或者等比压缩

    图片压缩工具对图片大小进行压缩

    总的来说,图片压缩是一项兼顾效率与质量的技术,合理运用能够极大地提升数字媒体的管理效率。通过了解基本的压缩原理和使用专业的图片压缩工具,无论是新手还是专业人士,都能更好地应对图片文件的大小挑战。

    图片压缩处理器,尺寸,大小

    可以处理图像的大小及尺寸,当你要向电子档案上传照片时,最能起作用了

    图片压缩,上传后自动生成新的压缩图,可指定图片大小

    本项目涉及的是一个图片压缩系统,该系统在用户上传图片后,能够根据用户的需求自动生成不同尺寸的压缩图片,无论是等比例缩放还是非等比例缩放都能灵活处理。下面将详细探讨这一领域的相关知识点。 首先,我们需要...

    Linux系统下批量压缩图片尺寸大小的方法.docx

    Linux系统下批量压缩图片尺寸大小的方法 Linux 操作系统中,批量压缩图片尺寸大小是一项非常有用的功能,特别是在移动端用户非常庞大,流量的考虑变得越来越重要。然而,在 Linux 系统下实现批量压缩图片尺寸大小是...

    C# core 图片压缩 图片无损压缩 图片无损剪切 无损图片压缩 无损图片剪切

    1. **无损图片压缩**:无损压缩不同于有损压缩,后者通常通过减少颜色位深或使用像JPEG这样的有损算法来减小文件大小,而会丢失一些图像细节。无损压缩如PNG或GIF格式,保留所有原始像素数据。在C# Core中,我们可以...

    图片大小压缩工具

    图片压缩的基本原理涉及到图像编码技术,常见的有有损压缩和无损压缩两种方式。有损压缩如JPEG格式,通过去除人眼难以察觉的图像细节来实现压缩,压缩比率高但会损失部分原始数据。无损压缩如PNG格式,它不破坏任何...

    图片压缩到最小.rar

    因此,图片压缩的目标是减小文件大小,同时尽可能保持图片质量。 图片压缩主要分为两种类型:有损压缩和无损压缩。无损压缩能够在解压后完全恢复原始数据,而有损压缩则会在压缩过程中丢失部分信息,解压后的图片与...

    C# .Net压缩图片,大小仅为原图的1/10

    本文将详细介绍如何使用C# .Net技术来实现图片压缩,使得压缩后的图片大小仅为原图的1/10。 #### 压缩原理与方法 在讨论具体的代码实现之前,我们首先需要了解图片压缩的基本原理。图片压缩主要分为两种类型:无损...

    图片压缩小工具

    在功能方面,ImageResizer.exe专注于图片压缩,能够快速有效地减小图片的大小,同时保持图片质量的相对稳定。它采用了智能的压缩算法,能够在压缩过程中尽可能地保留原始图像的细节和色彩,使得压缩后的图片在视觉上...

    html5 canvas 图片压缩

    HTML5 Canvas是Web开发中的一个强大工具,它允许开发者在网页上进行动态...通过理解并运用上述技术,你可以创建一个高效且兼容性强的图片压缩解决方案,确保在微信、Chrome、Firefox等不同环境中都能得到良好的效果。

    图片批量压缩,调整大小免费工具(亲身测试完美)

    4. **预览与确认**:在进行批量操作前,你可以通过预览功能查看图片压缩或调整尺寸后的效果,确保满足需求。 5. **执行操作**:最后,在“操作”区域,点击“开始处理”按钮,Caesium将开始执行所选的压缩和调整...

    js图片压缩

    综上所述,JS图片压缩是网页开发中不可或缺的技能,它结合了技术与策略,既能保证图片质量,又能有效控制文件大小,提升网站性能。通过学习和实践,开发者可以熟练掌握这一技巧,为项目带来显著的优化效果。

    图片尺寸修改压缩工具

    其次,图片压缩是一种减小图片文件大小的技术,常见的有有损压缩和无损压缩。有损压缩如JPEG,它通过丢弃部分数据来减少文件大小,可能导致质量损失,尤其在多次保存和编辑后更为明显。无损压缩如PNG,它不会丢失...

    VB6图片压缩处理源码

    总的来说,VB6图片压缩处理源码可能涵盖了图像读取、压缩算法应用、图像尺寸调整、文件I/O以及用户交互等多个方面,体现了VB6结合外部库进行图像处理的能力。通过理解这些知识点,可以对源码进行深入研究和扩展,以...

    图片压缩flex demo

    对于图片压缩,常见的优化策略包括调整颜色深度、使用适当的压缩算法、裁剪不必要的部分、减小尺寸等。在Flex中,可以使用BitmapData的compress()方法,传入合适的压缩格式(如JPEGEncoder或PNGEncoder)和质量参数...

    图片压缩,不改变宽高

    使用两中方法进行压缩,可以只改变图片大小,如,原图片100kb,压缩后变成40kb。并且不改变宽高。 一.使用ImageMagick进行压缩类-Aa.java 需要做以下配置: 1.将jmagick.dll加入jdk\bin目录中 2.将jmagick.dll加入到...

Global site tag (gtag.js) - Google Analytics