图片压缩

JavaScript前端图片压缩

匿名 (未验证) 提交于 2019-12-02 21:53:52
实现思路 获取input的file 使用fileReader() 将图片转为base64 使用canvas读取base64 并降低分辨率 把canvas数据转成blob对象 把blob对象转file对象 完成压缩 相关代码: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <input type="file" id="file"> <script> document.getElementById('file').addEventListener('change',function (e) { let fileObj = e.target.files[0] let that = this; compressFile(fileObj,function (files) {

Java 图片压缩的两种方式

匿名 (未验证) 提交于 2019-12-02 21:53:52
Java 图片压缩的两种方式 2. Graphics Graphics类提供基本绘图方法,Graphics类提供基本的几何图形绘制方法,主要有:画线段、画矩形、画圆、画带颜色的图形、画椭圆、画圆弧、画多边形、画字符串等。 这里不做一一赘述, 进重点介绍一下,利用Graphics类如何进行压缩图像。不多说直接上代码。 其实,关键点就两处 BufferedImage buffImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); buffImg.getGraphics().drawImage(image.getScaledInstance(width, height, Image.SCALE_SMOOTH), 0, 0, null); 详细情形请查阅Graphics源代码。 第二种方案就是使用google thumbnailator jar包,主要是Thumbnails类, 大家可以去maven仓库里去下载。还是直接上代码,大家可以发现编码变得更加容易,而且宽高都是自适应的,另外Thumbnails还提供批量压缩方法,功能十分强大,效率也更高。 4. 效率测试 既然上述两种方式都可以压缩图片,那么哪一种效率更高呢?为此我特意做了一下实验,准备了74张图片进行压缩,ppi均为125

图片比例压缩

て烟熏妆下的殇ゞ 提交于 2019-12-02 09:19:29
图片比例压缩 点关注不迷路,欢迎再访! 1.引入依赖: < dependency > < groupId > net . coobird < / groupId > < artifactId > thumbnailator < / artifactId > < version > 0.4 .8 < / version > < / dependency > 2.实现压缩代码: BufferedImage img = ImageIO . read ( new File ( "D:/images/aa.png" ) ) ; File outFile = new File ( "D:/images/cc.png" ) ; Thumbnails . of ( img ) . scale ( 0.25 f ) //0-1f 图片压缩比例,接近0失真 . outputQuality ( 1 f ) //默认为1 . toFile ( outFile ) ; 来源: https://blog.csdn.net/qq_39443053/article/details/102749604

iOS开发中,PNG图片的各种压缩软件,以及压缩率对比

被刻印的时光 ゝ 提交于 2019-12-01 08:41:10
作者:shede333 主页:http://my.oschina.net/shede333 && http://blog.sina.com.cn/u/1509658847 版权声明:原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | [Creative Commons BY-NC-ND 3.0][] ##各种压缩软件的对比情况: http://jamiemason.github.io/ImageOptim-CLI/comparison/png/photoshop/desc/ 压缩率较高的为 ImageAlpha 的有损压缩 加上 ImageOptim 的无损压缩,二者要要先后顺序, 嫌麻烦的话,少量图片也可以使用在线工具: TinyPNG 此工具有api,但是有限制,每个key每月300次,再多就要收费 这是我另外一篇压缩图片的文章: Mac OS系统 降低图片图片质量工具以及批量处理 ##ImageOptim 进入官网 无损压缩,GUI + Command Line(有GUI软件,也有命令行) ###注意: 使用此工具,需要 关闭Xcode自带的图片压缩功能 ,否则Xcode压缩图片后反而会增加 Xcode设置见教程 Command Line : https://imageoptim.com/command-line.html include: PNGOUT Zopfli

图片压缩工具,记录一下。

邮差的信 提交于 2019-11-30 21:17:00
代码: import net.coobird.thumbnailator.Thumbnails; import org.apache.commons.io.FileUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; /** * 图片压缩Utils*/ public class PicUtils { private static Logger logger = LoggerFactory.getLogger(PicUtils.class); /*public static void main(String[] args) throws IOException { byte[] bytes = FileUtils.readFileToByteArray(new File("D:\\test\\371386015451197440.jpg")); long l = System.currentTimeMillis(); bytes = PicUtils

前端图片压缩上传

强颜欢笑 提交于 2019-11-30 07:38:39
 在移动端压缩图片并且上传主要用到filereader、canvas 以及 formdata 这三个h5的api。逻辑并不难。整个过程就是:   (1)用户使用input file上传图片的时候,用filereader读取用户上传的图片数据(base64格式)   (2)把图片数据传入img对象,然后将img绘制到canvas上,再调用canvas.toDataURL对图片进行压缩   (3)获取到压缩后的base64格式图片数据,转成二进制塞入formdata,再通过XmlHttpRequest提交formdata。   如此三步,就完成了图片的压缩和上传。   说起来好像挺简单,其实还是有些坑的。接下来就直接用代码进行分析:   【一】获取图片数据   先是获取图片数据,也就是监听input file的change事件,然后获取到上传的文件对象files,将类数组的files转成数组,然后进行forEach遍历。   接着判断文件类型,如果不是图片则不作处理。如果是图片就实例化一个filereader,以base64格式读取上传的文件数据,判断数据长度,如果大于200KB的图片就调用compress方法进行压缩,否则调用upload方法进行上传。 filechooser.onchange = function() { if (!this.files.length) return

图片的格式常用的有几种??

痞子三分冷 提交于 2019-11-29 05:31:57
文章转自 https://zhidao.baidu.com/question/15311803.html https://support.microsoft.com/zh-cn/help/320314/description-of-the-guidelines-for-selecting-the-appropriate-picture-fo 图片格式:光栅图片 BMP:Windows 位图 PCX:PC 画笔 PNG:可移植网络图形 JPEG:联合摄影专家组 GIF:图形交换格式 TIFF:标记图像文件格式 图片格式: 矢量图片 DXF:AutoCAD 绘图交换文件 CGM:计算机图形 图元文件 CDR:CorelDRAW! WMF:Windows 图元文件 EPS:Encapsulated PostScript EMF:增强型 图元文件 PICT:Macintosh 图片 图片格式:光栅图片 BMP:Windows 位图 Windows 位图可以用任何 颜色深度 (从黑白到 24 位颜色)存储单个光栅图像。Windows 位图文件格式与其他 Microsoft Windows 程序兼容。它不支持文件压缩,也不适用于 Web 页。 从总体上看,Windows 位图文件格式的缺点超过了它的优点。为了保证照片图像的质量,请使用 PNG 文件、JPEG 文件或 TIFF 文件。BMP

图片压缩工具类

China☆狼群 提交于 2019-11-28 19:13:25
import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; /** * * @author 周瑜 * 2018年3月23日 下午3:15:10 */ public final class PicUtils { /** * 判断要压缩的文件名是否是合法的图片文件 * @param fileName * @return */ private static final boolean isImage(String fileName) { if (fileName == null || fileName.isEmpty()) { throw new RuntimeException( "要判断的文件名不能为空!" ); } fileName = fileName.toUpperCase(); return fileName.endsWith( ".JPG" ) || fileName.endsWith( ".JPEG" ) || fileName.endsWith( ".PNG" ) || fileName.endsWith( ".BMP" ) || fileName

图片压缩的工具类

天涯浪子 提交于 2019-11-28 19:12:57
比如,项目中调用相,返回一张图片一眼看过去,就是放大后才有区别。 1. 项目中用到的的代码 // 从SD卡里直接获取Bitmap private Bitmap getDiskBitmap(String pathString) { Bitmap bitmap = null; try { File file = new File(pathString); if (file.exists()) { bitmap = BitmapFactory.decodeFile(pathString); } } catch (Exception e) { // TODO: handle exception } return bitmap; } // 转换成64位的Bitmap public static String bitmapToBase64(Bitmap bitmap) { String result = null; ByteArrayOutputStream baos = null; try { if (bitmap != null) { baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); baos.flush(); baos.close(); byte[]

图片压缩工具类

Deadly 提交于 2019-11-28 19:12:36
1 /** 2 * 缩略图实现,将图片(jpg、bmp、png、gif等等)真实的变成想要的大小 3 */ 4 package com.hljzr.system.util; 5 6 import java.awt.Image; 7 import java.awt.image.BufferedImage; 8 import java.io.File; 9 import java.io.FileOutputStream; 10 import java.io.IOException; 11 import javax.imageio.ImageIO; 12 import com.sun.image.codec.jpeg.JPEGCodec; 13 import com.sun.image.codec.jpeg.JPEGImageEncoder; 14 15 /******************************************************************************* 16 * 缩略图类(通用) 本java类能将jpg、bmp、png、gif图片文件,进行等比或非等比的大小转换。 具体使用方法 17 * compressPic(大图片路径,生成小图片路径,大图片文件名,生成小图片文名,生成小图片宽度,生成小图片高度,是否等比缩放