/**
* 按尺寸质量压缩(测试)
* @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);
}
相关推荐
对于图片压缩,主要的策略是调整图片的尺寸和质量。调整尺寸可以通过设置`BufferedImage`的宽度和高度实现,而降低质量则涉及到JPEG或PNG的编码参数。以下是压缩图片的示例代码: ```java public void ...
本主题将深入探讨如何使用Java实现图片压缩,并能够将其调整到任意大小,同时保持图片质量并避免变形。 首先,我们需要理解图片压缩的基本原理。图片压缩主要有两种类型:有损压缩和无损压缩。有损压缩会牺牲一部分...
图片尺寸及大小压缩工具,不需要PS就可以改变图片尺寸及大小
通过java实现对图片按照尺寸、像素质量实现对图片的压缩处理,并可以对图片制定宽高或者等比压缩
总的来说,图片压缩是一项兼顾效率与质量的技术,合理运用能够极大地提升数字媒体的管理效率。通过了解基本的压缩原理和使用专业的图片压缩工具,无论是新手还是专业人士,都能更好地应对图片文件的大小挑战。
可以处理图像的大小及尺寸,当你要向电子档案上传照片时,最能起作用了
本项目涉及的是一个图片压缩系统,该系统在用户上传图片后,能够根据用户的需求自动生成不同尺寸的压缩图片,无论是等比例缩放还是非等比例缩放都能灵活处理。下面将详细探讨这一领域的相关知识点。 首先,我们需要...
本文将详细介绍如何使用C# .Net技术来实现图片压缩,使得压缩后的图片大小仅为原图的1/10。 #### 压缩原理与方法 在讨论具体的代码实现之前,我们首先需要了解图片压缩的基本原理。图片压缩主要分为两种类型:无损...
Linux系统下批量压缩图片尺寸大小的方法 Linux 操作系统中,批量压缩图片尺寸大小是一项非常有用的功能,特别是在移动端用户非常庞大,流量的考虑变得越来越重要。然而,在 Linux 系统下实现批量压缩图片尺寸大小是...
使用两中方法进行压缩,可以只改变图片大小,如,原图片100kb,压缩后变成40kb。并且不改变宽高。 一.使用ImageMagick进行压缩类-Aa.java 需要做以下配置: 1.将jmagick.dll加入jdk\bin目录中 2.将jmagick.dll加入到...
本文实例为大家分享了微信小程序图片压缩的具体代码,供大家参考,具体内容如下 设计思路: 选择图片后调用微信压缩图片接口,压缩后接收压缩图片的临时地址,调用微信储存接口保存图片至本地。 参数: imagesrc:...
1. **无损图片压缩**:无损压缩不同于有损压缩,后者通常通过减少颜色位深或使用像JPEG这样的有损算法来减小文件大小,而会丢失一些图像细节。无损压缩如PNG或GIF格式,保留所有原始像素数据。在C# Core中,我们可以...
图片压缩的基本原理涉及到图像编码技术,常见的有有损压缩和无损压缩两种方式。有损压缩如JPEG格式,通过去除人眼难以察觉的图像细节来实现压缩,压缩比率高但会损失部分原始数据。无损压缩如PNG格式,它不破坏任何...
因此,图片压缩的目标是减小文件大小,同时尽可能保持图片质量。 图片压缩主要分为两种类型:有损压缩和无损压缩。无损压缩能够在解压后完全恢复原始数据,而有损压缩则会在压缩过程中丢失部分信息,解压后的图片与...
在功能方面,ImageResizer.exe专注于图片压缩,能够快速有效地减小图片的大小,同时保持图片质量的相对稳定。它采用了智能的压缩算法,能够在压缩过程中尽可能地保留原始图像的细节和色彩,使得压缩后的图片在视觉上...
HTML5 Canvas是Web开发中的一个强大工具,它允许开发者在网页上进行动态...通过理解并运用上述技术,你可以创建一个高效且兼容性强的图片压缩解决方案,确保在微信、Chrome、Firefox等不同环境中都能得到良好的效果。
4. **预览与确认**:在进行批量操作前,你可以通过预览功能查看图片压缩或调整尺寸后的效果,确保满足需求。 5. **执行操作**:最后,在“操作”区域,点击“开始处理”按钮,Caesium将开始执行所选的压缩和调整...
综上所述,JS图片压缩是网页开发中不可或缺的技能,它结合了技术与策略,既能保证图片质量,又能有效控制文件大小,提升网站性能。通过学习和实践,开发者可以熟练掌握这一技巧,为项目带来显著的优化效果。
其次,图片压缩是一种减小图片文件大小的技术,常见的有有损压缩和无损压缩。有损压缩如JPEG,它通过丢弃部分数据来减少文件大小,可能导致质量损失,尤其在多次保存和编辑后更为明显。无损压缩如PNG,它不会丢失...
对于图片压缩,常见的优化策略包括调整颜色深度、使用适当的压缩算法、裁剪不必要的部分、减小尺寸等。在Flex中,可以使用BitmapData的compress()方法,传入合适的压缩格式(如JPEGEncoder或PNGEncoder)和质量参数...