图片压缩

java图片无损压缩

前提是你 提交于 2019-12-05 02:40:16
一,提供一张原图,原图大小2.1mb 二,处理后图片大小对比,大小772kb,对比原图占用内存减少三分之二 三 ,java代码 /** * * @param srcFilePath 原图路径 * @param descFilePath 保存路径 * @return * @throws IOException */ public static boolean compressPic(String srcFilePath, String descFilePath) throws IOException { File file = null; BufferedImage src = null; FileOutputStream out = null; // 指定写图片的方式为 jpg ImageWriter imgWrier = ImageIO.getImageWritersByFormatName("jpg").next(); ImageWriteParam imgWriteParams = new ImageWriteParam(null); // 要使用压缩,必须指定压缩方式为MODE_EXPLICIT imgWriteParams.setCompressionMode(imgWriteParams.MODE_EXPLICIT); // 这里指定压缩的程度,参数qality是取值0

前端开发中的各种图片原理

我怕爱的太早我们不能终老 提交于 2019-12-04 20:01:18
前言 随着web的发展,网站资源的流量也变得越来越大。据统计,60% 的网站流量均来自网站图片,可见对图片合理优化可以大幅影响网站流量,减小带宽消耗和服务器压力。 有时候你花大力气去配置 webpack 使打包体积减少,不如好好优化几张图片,这篇文章就是让你明白如何选择正确的图片,并且让你明白这么多图片格式,在什么场景下使用什么格式,如果想看答案,那么直接滑到文末看图即可。 基本概念 在进入正题之前,先聊聊一些图片相关的基本概念。 一张照片(位图)不断放大之后,会看到一个个小格子,这些小格子,叫像素。 一个格子(像素),在计算机中,用二进制来表示,使用的二进制位数越多,像素的色彩就越丰富。 举个🌰,如果一个像素用一位二进制数表示,能有多少种颜色呢? 两种,一个二进制位,要不放 0(表示黑色),要不放 1(表示白色) 下图展示了一个像素二进制的位数最多可以展示多少种颜色。 在对图片有了基本的了解之后,接下来对图片进行分下类,有利于理解各种格式图片的特点。 根据图的类型分类 点阵图(位图) 矢量图 位图(点阵图) 位图,也叫做点阵图,像素图。构成点阵图的最小单位是像素,位图就是由像素阵列的排列来实现其显示效果的, 每个像素有自己的颜色信息 ,在对位图图像进行编辑操作的时候,可操作的对象是每个像素,我们可以改变图像的色相、饱和度、透明度,从而改变图像的显示效果。

前端图片压缩后,文件流上传

蓝咒 提交于 2019-12-04 08:04:23
直接贴代码了   使用的是vantUI框架,不过没有关系,都是对文件流进行判断压缩的。按需求改造一下就OK了 <template> <div class="page_publish"> <div class="bg_box"> <div class="form_box"> <div class="con"> <textarea class="textarea" v-model="formData.story" placeholder="经历了哪些有趣、快乐、感动的小故事...... ,写下来分享给我们吧" ></textarea> <div class="file_box"> <van-uploader :before-read="beforeRead" :after-read="afterRead" v-model="fileList" multiple :max-count="3" > <div class="upload_btn flex flex-v flex-align-center flex-pack-center"> <img src="../assets/imgs/icon_camaro.png" class="icon" /> <p class="num" v-if="fileList.length==0">添加图片</p> <p class="num" v

vue Base64图片压缩上传OSS

我的未来我决定 提交于 2019-12-03 23:43:50
this.compress(result, 800, 0.5).then(val => { //得到压缩图片 let data = val; that.file = that.dataURLtoFile(data, that.file_name); //上传 that.upload(); }); // 压缩图片 compress(base64String, w, quality) { // var getMimeType = function(urlData) { // var arr = urlData.split(","); // var mime = arr[0].match(/:(.*?);/)[1]; // // return mime.replace("image/", ""); // return mime; // }; var newImage = new Image(); var imgWidth, imgHeight; var promise = new Promise(resolve => (newImage.onload = resolve)); newImage.src = base64String; return promise.then(() => { imgWidth = newImage.width; imgHeight = newImage

node-images 进行图片压缩

我的梦境 提交于 2019-12-03 01:36:52
前置条件:先安装images npm install images 编写代码 思路: 从指定文件夹遍历图片,执行压缩,压缩完成后放到指定文件夹中,并保持图片名无变化。 var images = require("images"); var fs = require("fs"); var path = "1012"; var outpath = "compress/"; function compress(path){ fs.readdir(path, function(err, files){ if(err){ console.log('error:\n' + err); return; } files.forEach(function(file){ fs.stat(path + '/' + file, function(err, stat){ if(err){console.log(err); return;} if(stat.isDirectory()){ // 如果是文件夹遍历 compress(path + '/' + file); }else{ //遍历图片 console.log('文件名:' + path + '/' + file); var name = path + '/' + file; var outName = outpath+file images

ps切图 4 保存

匿名 (未验证) 提交于 2019-12-03 00:40:02
保存    存储所需要内容     如果是独立的图层 ,我们采用移动工具 把我们需要的内容拖到新文件中     如果是已经合并在一起的图层,我们可以采取:   第二种:  ( Alt + Shift + Ctrl + S ) 保存为哪种类型呢? 保存类型一      当图片色彩丰富且无透明要求时 保存类型二 当图片色彩不太丰富时 无论有无透明度要求 操作步骤 :选择好图片--- 请保存为PNG8格式 这里可以保存设置 以后就可以直接用 当图片有半透明要求 请保存PNG24格式 操作步骤 :选择好图片--- 为保证图片质量 保留一份PSD,在PSD上进行修改 为什么要这样做呢? 一是因为PSD文件是可以保留原图层的,对于我们后期维护是相当方便的 另外PNG8会对图片进行压缩的,如果我们在PNG8文件中修改再进行保存,那就等于压缩了两次 ,会导致像素点的丢失 原文:https://www.cnblogs.com/hzaixt/p/9275836.html

前端图片压缩上传(纯js的质量压缩,非长宽压缩)

匿名 (未验证) 提交于 2019-12-03 00:34:01
<! DOCTYPE html > < html > < head > < meta charset ="UTF-8" > < title > XMLHttpRequest上传文件 </ title > < script type ="text/javascript" > /* 三个参数 file:一个是文件(类型是图片格式), w:一个是文件压缩的后宽度,宽度越小,字节越小 objDiv:一个是容器或者回调函数 photoCompress() */ function photoCompress(file,w,objDiv){ var ready = new FileReader(); /* 开始读取指定的Blob对象或File对象中的内容. 当读取操作完成时,readyState属性的值会成为DONE,如果设置了onloadend事件处理程序,则调用之.同时,result属性中将包含一个data: URL格式的字符串以表示所读取文件的内容. */ ready.readAsDataURL(file); ready.onload = function (){ var re = this .result; canvasDataURL(re,w,objDiv) } } function canvasDataURL(path, obj, callback){ var img = new

opencv图片压缩视频并读取

匿名 (未验证) 提交于 2019-12-02 23:55:01
import os import cv2 import numpy as np import time path = './new_image/' filelist = os . listdir ( path ) fps = 0.5 # 视频每秒0.5帧 # 图片的尺寸必须是一样的 size = ( 512 , 512 ) # opencv读取的视频只能是avi格式 video = cv2 . VideoWriter ( "VideoTest1.avi" , cv2 . VideoWriter_fourcc ( "M" , "J" , "P" , "G" ), fps , size ) # 视频保存在当前目录下 for item in filelist : if item . endswith ( '.jpg' ): # 找到路径中所有后缀名为.png的文件,可以更换为.jpg或其它 item = path + item img = cv2 . imread ( item ) video . write ( img ) time . sleep ( 2 ) print ( "#" * 100 ) cap_cramer = cv2 . VideoCapture ( "./VideoTest1.avi" ) while True : ret , frame = cap_cramer .

iOS基础:iOS图片压缩

匿名 (未验证) 提交于 2019-12-02 23:34:01
<1>图片压缩 这个三个方法环环紧扣,使用二分法迅速压缩图片大小,试了下,iPad的话400KB差不多图片不虚,小于200就会虚的很 #pragma mark - 图片压缩 + (NSData *)resetSizeOfImageData:(UIImage *)sourceImage maxSize:(NSInteger)maxSize { } #pragma mark 调整图片分辨率/尺寸(等比例缩放) + (UIImage *)newSizeImage:(CGSize)size image:(UIImage *)sourceImage { } #pragma mark 二分法 + (NSData *)halfFuntion:(NSArray *)arr image:(UIImage *)image sourceData:(NSData *)finallImageData maxSize:(NSInteger)maxSize { } <2>图片裁剪,单独使用 #pragma ---图片裁剪 //裁剪image大小 -(UIImage*)OriginImage:(UIImage *)image scaleToSize:(CGSize)size{ } <3>网上搜到了个比较详细的介绍 https://www.jianshu.com/p/99c3e6a6c033 文章来源: https

iOS基础:iOS图片压缩

匿名 (未验证) 提交于 2019-12-02 23:32:01
<1>图片压缩 这个三个方法环环紧扣,使用二分法迅速压缩图片大小,试了下,iPad的话400KB差不多图片不虚,小于200就会虚的很 #pragma mark - 图片压缩 + (NSData *)resetSizeOfImageData:(UIImage *)sourceImage maxSize:(NSInteger)maxSize { } #pragma mark 调整图片分辨率/尺寸(等比例缩放) + (UIImage *)newSizeImage:(CGSize)size image:(UIImage *)sourceImage { } #pragma mark 二分法 + (NSData *)halfFuntion:(NSArray *)arr image:(UIImage *)image sourceData:(NSData *)finallImageData maxSize:(NSInteger)maxSize { } <2>图片裁剪,单独使用 #pragma ---图片裁剪 //裁剪image大小 -(UIImage*)OriginImage:(UIImage *)image scaleToSize:(CGSize)size{ } <3>网上搜到了个比较详细的介绍 https://www.jianshu.com/p/99c3e6a6c033 文章来源: https