图片压缩

图片压缩java工具类

喜你入骨 提交于 2019-11-28 19:09:30
package com.net.util; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletRequest; import org.apache.log4j.Logger; import org.springframework.web.multipart.MultipartFile; import com.net.entity.ImgzipResult; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGEncodeParam; import com.sun.image.codec.jpeg.JPEGImageEncoder; /************************************** * Description:图片上传压缩工具类 * @author zhangdi * @version 1

opencv图片压缩视频并读取

半世苍凉 提交于 2019-11-28 18:07:50
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.read() print("ret......", ret) print(frame) if ret is

前端获取图片压缩后上传给后台

≡放荡痞女 提交于 2019-11-28 17:33:19
  此前有同事跟我聊过关于移动端用canvas压缩图片后再上传的功能,最近有了点空闲时间,所以就实践了一下。demo效果链接在文章底部贴出。   在做移动端图片上传的时候,用户传的都是手机本地图片,而本地图片一般都相对比较大,拿iphone6来说,平时拍很多图片都是一两M的,如果直接这样上传,那图片就太大了,如果用户用的是移动流量,完全把图片上传显然不是一个好办法。   目前来说,HTML5的各种新API都在移动端的webkit上得到了较好的 实现。根据查看caniuse,本demo里使用到的FileReader、Blob、Formdata对象均已在大部分移动设备浏览器中得到了实现 (safari6.0+、android 3.0+),所以直接在前端压缩图片,已经成了很多移动端图片上传的必备功能了。   在移动端压缩图片并且上传主要用到filereader、canvas 以及 formdata 这三个h5的api。逻辑并不难。整个过程就是:   (1)用户使用input file上传图片的时候,用filereader读取用户上传的图片数据(base64格式)   (2)把图片数据传入img对象,然后将img绘制到canvas上,再调用canvas.toDataURL对图片进行压缩   (3)获取到压缩后的base64格式图片数据,转成二进制塞入formdata

js 实现图片压缩

社会主义新天地 提交于 2019-11-28 16:54:02
function compressImg(file) { // 创建Canvas对象(画布) let canvas = document.createElement('canvas') // 获取对应的CanvasRenderingContext2D对象(画笔) let context = canvas.getContext('2d') // 创建新的图片对象 let img = new Image() // 指定图片的DataURL(图片的base64编码数据) img.src = file.content //画布宽度 let width = 512 // 监听浏览器加载图片完成进行绘制 img.onload = () => { //画布大小按照图片的比例生成 let height = width / (img.naturalWidth / img.naturalHeight) // 指定canvas画布大小,该大小为最后生成图片的大小 canvas.width = width canvas.height = height context.drawImage(img, 0, 0, canvas.width, canvas.height) // 将绘制完成的图片重新转化为base64编码,file.type为图片类型,0.92为默认压缩质量 //返回压缩后的文件 return

高并发和大流量解决方案

寵の児 提交于 2019-11-28 16:34:02
1.web资源防盗链 盗链概念 盗链是指在自己的页面上展示一些并不在自己服务器的内容 防盗链工作原理 通过referer或者签名,网站可以检测目标网页访问的来源页,一旦检测到来源页不是本站即进行阻止或者返回指定页面 解决方案1 Referer nginx 模块ngx_http_referer_module用于阻挡来源非法的域名请求 ··· shell location ~ . .(gif|jpg|png|swf|bmp|jpeg)$ { valid_referers none blocked bobo.com if ($invalid_referer) { return 403 } } 缺点:可以进行伪装referer ### 解决方案2 使用第三方HttpAccessKeyModule模块实现NGINX防盗链 shell location ~ . .(gif|jpg|png|swf|bmp|jpeg)$ { accesskey on; accesskey_hashmethod md5; accesskey_arg sign; accesskey_signature "bobo$remote_addr"; } 缺点:要在每个资源后面加个签名 ## 2.减少http请求次数 为什么要减少http请求次数 HTTPl连接产生的开销 域名解析->TCP连接->发送请求->等待->下载资源

图片压缩

独自空忆成欢 提交于 2019-11-28 05:13:14
将图片压缩成jpg或png $type = explode('/', $file->type); $mainType = $type[0]; $subType = $type[1]; $isImage = $mainType == 'image'; $isGif = $subType == 'gif';//gif压缩会变静态的,所以过滤掉 if ($isImage) { $maxSize = 1024 * 1024; if (!$isGif) { //图片进行压缩 $file->data = $this->compressImage($file->data, $maxSize); } //生成文件 } function compressImage($data, $maxSize, $percent = 1) { $size = strlen($data); if ($size <= $maxSize) { return $data; } $img = imagecreatefromstring($data); $width = imagesx($img); $height = imagesy($img); $newWidth = $width * $percent; $newHeight = $height * $percent; $newImg =

踩坑之用lrz插件进行图片压缩

血红的双手。 提交于 2019-11-28 03:41:32
项目有一个需求,压缩图片到指定大小,比如缩略图到52kb大图5M。一开始用的插件 localResizeIMG ,但它没有压缩到指定大小的,就想着是不是可以循环调用这个插件,后来发现它的一个参数quality每次给的值不能一样,一样的话他就不压缩了。但循环压缩也不太好,控制不好那个循环次数,然后又找了一个可以指定压缩图片大小的插件image-conversion,详细地址在 https://github.com/WangYuLue/image-conversion 来源: https://www.cnblogs.com/hua-hua-good-good-study-day-day-up/p/11390093.html

图片压缩

大城市里の小女人 提交于 2019-11-27 10:13:57
1. 压缩 ① inSampleSize 采样率压缩(尺寸压缩) ② Bitmap.compress 质量压缩。   减小的是物理文件大小,其他不变。文件大小(kb)会有改变,占得内存是不变,宽高也不会改变。   实现原理:通过算法扣掉图片中一些像素点附近相近的像素。达到降低质量,减小文件大小。   缺点:处理后,图片没那么清晰(如果放大看的话) ③ Matrix 缩放压缩 来源: https://www.cnblogs.com/zhiqixue/p/11358539.html

Thinkphp压缩图片

五迷三道 提交于 2019-11-26 21:22:04
/** * desription 压缩图片 * @param sting $imgsrc 图片路径 * @param string $imgdst 压缩后保存路径 */ public function compressedImage($imgsrc, $imgdst) { list($width, $height, $type) = getimagesize($imgsrc); $new_width = $width;//压缩后的图片宽 $new_height = $height;//压缩后的图片高 //$new_width = ($width>600?600:$width)*0.9; //$new_height =($height>600?600:$height)*0.9; switch ($type) { case 1: $giftype = $this->check_gifcartoon($imgsrc); if ($giftype) { header('Content-Type:image/gif'); $image_wp = imagecreatetruecolor($new_width, $new_height); $image = imagecreatefromgif($imgsrc); imagecopyresampled($image_wp, $image, 0,

图片加载时间缓慢问题API

前提是你 提交于 2019-11-26 15:34:50
一、背景 最近段时间,开发写值工具项目中,出现图片加载问题API,响应时间缓慢;为了优化图片加载问题,我进行图片压缩方法,然后API的图片加载还是慢,最终在自己无意中乱写找到了根本的原因。 二、问题 优化图片加载问题 三、原因 1. 在API中,图片转换byte[ ]方法,用BMP的格式图片导致的API图片加载很慢; returnImage.Save(mstream2, System.Drawing.Imaging.ImageFormat.Bmp); 2. BMP 不支持压缩,这会造成文件非常大 四、解决方法 1. 压缩高质量图片 ① 这个压缩图片方法加载更快, //无损压缩图片 public Image GetImageThumbnail(Image image, double scaleFactor = 0.3) { using (image) { var newWidth = (int)(image.Width * scaleFactor); var newHeight = (int)(image.Height * scaleFactor); var thumbnailImg = new Bitmap(newWidth, newHeight); var thumbGraph = Graphics.FromImage(thumbnailImg); thumbGraph