精华内容
下载资源
问答
  • 安卓联系拍照压缩图片分辨率
  • 压缩图片分辨率

    2008-09-06 11:51:15
    public class CompressImage { private static final Log log = LogFactory.getLog(CompressImage.class); private int destWidth;// 压缩后的长 ... * 指定压缩后的长度,按比例计算出压缩后的高度 ...
    public class CompressImage {
    	private static final Log log = LogFactory.getLog(CompressImage.class);
    
    	private int destWidth;// 压缩后的长
    	private int destHeight;// 压缩后的高
    
    	/**
    	 * 指定压缩后的长度,按比例计算出压缩后的高度
    	 * 
    	 * @param width
    	 */
    	public CompressImage(int width) {
    		this.destWidth = width;
    
    	}
    
    	/**
    	 * 指定压缩后的长度和高度
    	 * 
    	 * @param width
    	 * @param height
    	 */
    	public CompressImage(int width, int height) {
    		this.destHeight = height;
    		this.destWidth = width;
    
    	}
    
    	// 根据长度计算出高度
    	private int getHeight(int width, int height)  	{
    
    		if (width > destWidth) {
    			float scale;// 计算原图比例
    			scale = (float) width / (float) destWidth;
    			float hh = height / scale;
    			return (int) hh;
    		} else {
    			this.destWidth = width;
    			return height;
    		}
    
    	}
    
    	/**
    	 * 压缩图片分辨率
    	 * 
    	 * @param srcPath
    	 * @param destPath
    	 * @throws Exception
    	 */
    	public void compress(String srcPath, String destPath) {
    		try {
    			File _file = new File(srcPath);
    			log.debug("SrcImagePath:" + _file.getAbsolutePath());
    			Image src = javax.imageio.ImageIO.read(_file);
    			int wideth = src.getWidth(null);// 获得图片长
    
    			int height = src.getHeight(null);// 获得图片高度
    			log.debug("StrImage:" + wideth + "*" + height);
    			int htagHeight = this.destHeight == 0 ? this.getHeight(wideth,
    					height) : this.destHeight;
    			BufferedImage tag = new BufferedImage(this.destWidth, htagHeight,
    					BufferedImage.TYPE_INT_RGB);
    			Graphics g = tag.getGraphics();
    			g.drawImage(src, 0, 0, this.destWidth, htagHeight, null);
    			// if (t != null) {// 在底部图片上写文字
    			// g.setColor(new Color(242, 242, 242));
    			// g.fillRect(this.getWideth() - 120, htagHeight - 18, 120, 18);
    			// g.setColor(new Color(180, 180, 180));
    			// g.drawRect(this.getWideth() - 120, htagHeight - 18, 119, 17);
    			// g.setColor(new Color(255, 102, 0));
    			// g.drawString(t, this.getWideth() - 100, htagHeight - 5);
    			// }
    			log.debug("DestImagePath:" + _file.getAbsolutePath());
    			log.debug("DestImage:" + tag.getWidth() + "*" + tag.getHeight());
    			FileOutputStream out = new FileOutputStream(destPath);
    			JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
    			encoder.encode(tag);
    			out.close();
    
    		} catch (Exception e) {
    			log.error("Compress Image [" + srcPath + "] error!!\r\n" + e);
    
    		}
    	}
    
    }

     

    展开全文
  • 我试过好几款压缩工具,感觉这款是最方便实用的,右键一键操作,真心快捷,强烈推荐。 Picture Resizer-修改图片大小、尺寸的软件,属于右键增强类工具,操作方法非常简单:双击运行它,点击界面上的“add to ...
  • nodejs中压缩图片分辨率

    千次阅读 2017-03-31 15:17:24
    1.适应在windows7、windowsxp系统2.首先在项目根目录中使用命令npm install --save images安装图片处理模块3.安装成功后然后在路由中使用var images = require('images');导入images模块

    1.适应在windows7、windowsxp系统

    2.首先在项目根目录中使用命令npm install --save images安装图片处理模块

    3.安装成功后然后在路由中使用var images = require('images');导入images模块

    4.在代码中 

    images(path).size(width,height).save(newPath);
    需要修改的地方含义解释:
    path:上传图片的路径-----例如:d:\imag\01.png
    width:图片的宽
    height:图片的高
    newPath:压缩后图片存放的路径:d:\pic\01.png
    
    

    展开全文
  • [code="html"]   [/code] [code="js"]//添加上传照片的浏览框 var count = 0; function Addfile_(){ if(count > 3) { alert("... var FileList =...
    <div id="FileList">
    <input type=file name="uploadFile[0].file" onkeydown="return false" id="file"/> 
    <input type="button" value=" 添加 " onclick="Addfile_()" />
    </div>

    //添加上传照片的浏览框
    var count = 0;
    function Addfile_(){
    if(count > 3)
    {
    alert("一次最多上传5个照片!");
    return;
    }
    count += 1;
    var FileList = document.getElementById("FileList");
    var div = document.createElement("div");
    var inputTxt = document.createElement("input"); //上传照片浏览框
    inputTxt.type = "file";
    inputTxt.name = "uploadFile["+count+"].file";
    inputTxt.onkeydown="return false";
    inputTxt.id="file";
    var space = document.createTextNode(" ");//创建一空格
    var btn = document.createElement("input"); //删除照片按钮
    btn.type = "button";
    btn.value = " 删除 ";
    btn.className = "form_1" ;
    btn.onclick = function(){
    this.parentNode.parentNode.removeChild(this.parentNode);
    count -= 1;
    }
    var brEle = document.createElement("br");
    div.appendChild(inputTxt);
    div.appendChild(space);
    div.appendChild(btn);
    div.appendChild(brEle);
    FileList.appendChild(div);
    }
    //验证
    function isSameName(pixname)
    {
    var s=0;
    var filename = new Array();
    var frm = document.getElementsByTagName('input');
    for(var i=0;i<frm.length;i++){
    if(frm[i].type == 'file' && frm[i].name.indexOf(pixname)!=-1)
    {
    var iname = frm[i].value;
    var string_arr = iname.split("\\");
    filename[s] = string_arr[string_arr.length-1];
    s++;
    if(iname==''){
    alert("照片不能为空!");
    return false;
    }
    }
    }
    for(var j=0;j<filename.length;j++)
    {
    var re=/(.*)\.(jpg|bmp|gif)$/;
    if(!re.exec(filename[j]))
    {
    alert("照片"+(j+1)+"格式不正确!");
    return false;
    }
    }
    for(var j=0;j<filename.length-1;j++){
    var uname = filename[j];
    for(var k=j+1;k<filename.length;k++)
    {
    var sname = filename[k];
    if (uname == sname)
    {
    alert("照片"+(j+1)+"与"+"照片"+(k+1)+"重名!");
    return false;
    }
    }
    }
    return true;
    }

    public String optUploadFile(ActionForm Form);		
    List<FormFile> fileList = new ArrayList<FormFile>();
    if (form.getMultipartRequestHandler() != null)
    {
    /**
    * 这里使用的是struts的 MultipartRequestHandler 得到页面传过来的所有file类型的表单元素
    */
    Hashtable fileht = form.getMultipartRequestHandler().getFileElements();
    for (Enumeration e = fileht.keys(); e.hasMoreElements();)
    {
    String key = (String) e.nextElement();
    FormFile file = (FormFile) fileht.get(key);
    fileList.add(file);
    }
    for (FormFile file : fileList)
    {
    Date time = new Date();
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-ddHHmmssMM");
    String date = formatter.format(time).replace("", "");
    if (file == null){
    continue;
    }
    //得到上传文件的后缀名
    String type=file.getFileName().substring(file.getFileName().lastIndexOf("."), file.getFileName().length());
    try
    {
    File ff = new File("/路径");
    if(!ff.exists()){
    ff.mkdirs();
    }
    writeFile("/路径/文件名", file.getInputStream());
    //将照片按尺寸缩放*/
    ImageDealWith.imageToDeal("/路径/"+"文件名");
    Thread.sleep(1000);
    message="success";
    } catch (Exception e)
    {
    e.printStackTrace();
    }
    }
    }

    public static File writeFile(String path, InputStream is)
    {
    File f = createFileIfNotExist(path);
    byte[] buffer = new byte[8192];
    OutputStream fos = null;
    int readByte = 0;
    try
    {
    fos = new FileOutputStream(f);
    while ((readByte = is.read(buffer, 0, 8192)) != -1)
    {
    fos.write(buffer, 0, readByte);
    }
    fos.flush();
    } catch (FileNotFoundException e)
    {
    e.printStackTrace();
    } catch (IOException e)
    {
    e.printStackTrace();
    } finally
    {
    try
    {
    if (is != null)
    {
    is.close();
    is = null;
    }

    if (fos != null)
    {
    fos.close();
    fos = null;
    }


    } catch (IOException e)
    {
    e.printStackTrace();
    }
    }
    return f;
    }

    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.Toolkit;
    import java.awt.color.ColorSpace;
    import java.awt.image.BufferedImage;
    import java.awt.image.ColorConvertOp;
    import java.awt.image.CropImageFilter;
    import java.awt.image.FilteredImageSource;
    import java.awt.image.ImageFilter;
    import java.io.*;
    import javax.imageio.ImageIO;

    import org.apache.commons.validator.GenericValidator;

    public class ImageDealWith
    {

    private static String types = "jpg|gif|jpeg|png|bmp";

    /** */
    /**
    * 图像切割
    *
    * @param srcImageFile 源图像地址
    * @param descDir 切片目标文件夹
    * @param destWidth 目标切片宽度
    * @param destHeight 目标切片高度
    */
    public static void cut(String srcImageFile, String descDir, int destWidth, int destHeight)
    {
    try
    {
    Image img;
    ImageFilter cropFilter;
    // 读取源图像
    BufferedImage bi = ImageIO.read(new File(srcImageFile));
    int srcWidth = bi.getHeight(); // 源图宽度
    int srcHeight = bi.getWidth(); // 源图高度
    if (srcWidth > destWidth && srcHeight > destHeight)
    {
    Image image = bi.getScaledInstance(srcWidth, srcHeight,
    Image.SCALE_DEFAULT);
    destWidth = 200; // 切片宽度
    destHeight = 150; // 切片高度
    int cols = 0; // 切片横向数量
    int rows = 0; // 切片纵向数量
    // 计算切片的横向和纵向数量
    if (srcWidth % destWidth == 0)
    {
    cols = srcWidth / destWidth;
    } else
    {
    cols = (int) Math.floor(srcWidth / destWidth) + 1;
    }
    if (srcHeight % destHeight == 0)
    {
    rows = srcHeight / destHeight;
    } else
    {
    rows = (int) Math.floor(srcHeight / destHeight) + 1;
    }
    // 循环建立切片
    // 改进的想法:是否可用多线程加快切割速度
    for (int i = 0; i < rows; i++)
    {
    for (int j = 0; j < cols; j++)
    {
    // 四个参数分别为图像起点坐标和宽高
    // 即: CropImageFilter(int x,int y,int width,int height)
    cropFilter = new CropImageFilter(j * 200, i * 150, destWidth, destHeight);
    img = Toolkit.getDefaultToolkit().createImage(
    new FilteredImageSource(image.getSource(), cropFilter));
    BufferedImage tag = new BufferedImage(destWidth, destHeight, BufferedImage.TYPE_INT_RGB);
    Graphics g = tag.getGraphics();
    g.drawImage(img, 0, 0, null); // 绘制缩小后的图
    g.dispose();
    // 输出为文件
    ImageIO.write(tag, "JPEG", new File(descDir
    + "pre_map_"
    + i
    + "_"
    + j
    + ".jpg"));
    }
    }
    }
    } catch (Exception e)
    {
    e.printStackTrace();
    }
    }

    /** */
    /**
    * 图像类型转换 GIF->JPG GIF->PNG PNG->JPG PNG->GIF(X)
    */
    public static void convert(String source, String result)
    {
    try
    {
    File f = new File(source);
    f.canRead();
    f.canWrite();
    BufferedImage src = ImageIO.read(f);
    ImageIO.write(src, "JPG", new File(result));
    } catch (Exception e)
    {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

    /** */
    /**
    * 彩色转为黑白
    *
    * @param source
    * @param result
    */
    public static void gray(String source, String result)
    {
    try
    {
    BufferedImage src = ImageIO.read(new File(source));
    ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_GRAY);
    ColorConvertOp op = new ColorConvertOp(cs, null);
    src = op.filter(src, null);
    ImageIO.write(src, "JPEG", new File(result));
    } catch (IOException e)
    {
    e.printStackTrace();
    }
    }

    /**
    * @function:修改文件名为:原文件名+"_b"
    * @param resultPath
    * @return
    * @author: Guanshengjun 2008-11-28 上午08:50:33
    */
    public static String returnNewFileName(String resultPath, String suffix)
    {
    String result = "";// 修改后的文件名称
    if (!GenericValidator.isBlankOrNull(resultPath))
    {
    int index = resultPath.lastIndexOf(".");// 获得文件后缀名的位置
    if (index > 0)
    {// 组装改名之后的新文件名称
    result = resultPath.substring(0, index)
    + suffix
    + "."
    + resultPath.substring(index + 1);
    return result;
    }
    }
    return resultPath;
    }

    /**
    * @function:图片缩放
    * @param widthL :缩放之后图片宽度
    * @param s_resultPath :缩放后的图片全路径
    * @param b_resultPath :原图片
    * @throws IOException
    * @author: Guanshengjun 2008-11-28 上午08:44:09
    */
    public static void changeImageSize(Integer widthL, String s_resultPath, String b_resultPath)
    throws IOException
    {
    try
    {
    BufferedImage src = ImageIO.read(new File(b_resultPath)); // 读入文件
    Integer width = src.getWidth();// 图片原始宽度
    Integer height = src.getHeight();// 图片原始高度
    double w ;// widthL为要缩放的宽度,计算缩放比例
    if(width>=height){
    w=(widthL.intValue()*1.0)/width.intValue();
    width=widthL;
    height=(int) Math.ceil(height*w);
    }else{
    w=(widthL.intValue()*1.0)/height.intValue();
    height=widthL;
    width=(int) Math.ceil(width*w);
    }
    Image image = src.getScaledInstance(width, height, Image.SCALE_SMOOTH);
    BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    Graphics g = tag.getGraphics();
    g.drawImage(image, 0, 0, null); // 绘制缩小后的图
    g.dispose();
    ImageIO.write(tag, "JPEG", new File(s_resultPath));// 输出到文件流
    } catch (Exception e)
    {
    e.printStackTrace();
    }
    }

    public static void imageToDeal(String imagePath)
    {
    String image_b = "";// 大图片名称
    String nameExt = "";// 文件扩展名
    File file = new File(imagePath);
    if (file.exists())
    {
    if (!file.isDirectory())
    {
    nameExt = file.getName().substring(file.getName().lastIndexOf(".") + 1,
    file.getName().length());
    if (types.indexOf(nameExt.toLowerCase()) != -1)
    {
    String[] xmlPicName = imageNameSuffix(ConstantDefine.PIC_DEAL_SUFFIX);
    if (xmlPicName != null)
    {
    int end = xmlPicName.length / 2;
    String origName = ""; // 原图路径
    String newName = "";// 新生成图的路径
    for (int i = 0; i < end; i++)
    {
    image_b = returnNewFileName(imagePath, xmlPicName[i * 2]); // 获得大图片名称
    File b_file = new File(image_b);
    newName = image_b;
    origName=imagePath;
    // 缩小图片大小:宽,高,上传服务器路径
    try
    {
    changeImageSize(
    Integer.parseInt(xmlPicName[i * 2 + 1]), newName,
    origName);
    } catch (Exception e)
    {
    b_file.renameTo(file);
    e.printStackTrace();
    }
    }
    }
    }
    }
    }
    }

    private static String[] imageNameSuffix(String pathName)
    {
    String name = XmlConfigurationHelper.getParameter(pathName);
    if (GenericValidator.isBlankOrNull(name))
    {
    return null;
    }
    String[] imageName = name.split("\\|");
    return imageName;
    }
    }
    展开全文
  • 需求:对于大于1M的图片,先进行分辨率压缩,将短边压缩为1224,如果仍然大于1M(非png图片)再进行质量压缩分辨率压缩:int degree = readPictureDegree(fromFile);//获取相片拍摄角度 int bitmapWidth = bitmap....

    需求:对于大于1M的图片,先进行分辨率压缩,将短边压缩为1224,如果仍然大于1M(非png图片)再进行质量压缩

    分辨率压缩:

    int degree = readPictureDegree(fromFile);//获取相片拍摄角度
    int bitmapWidth = bitmap.getWidth();
    int bitmapHeight = bitmap.getHeight();
    // 缩放图片的尺寸
    if (bitmapWidth > bitmapHeight) {
        width = (int) (height * bitmapWidth / bitmapHeight);
    } else {
        height = (int) (width * bitmapHeight / bitmapWidth);
    }
    float scaleWidth = (float) width / bitmapWidth;
    float scaleHeight = (float) height / bitmapHeight;
    Matrix matrix = new Matrix();
    if (degree != 0) {
        matrix.postRotate(degree);// 设置拍摄角度
    }
    matrix.postScale(scaleWidth, scaleHeight);
    // 产生缩放后的Bitmap对象
    resizeBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmapWidth, bitmapHeight, matrix, false);

    质量压缩:

    Bitmap bitmap = null;
    ByteArrayInputStream isBm = null;
    image.compress(Bitmap.CompressFormat.JPEG, 100, baos);// 质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baoswhile (baos.toByteArray().length > maxSize) { // 循环判断如果压缩后图片是否大于1m,大于继续压缩
        baos.reset(); // 重置baos即清空baos
        image.compress(Bitmap.CompressFormat.JPEG, options, baos);// 这里压缩options%,把压缩后的数据存放到baos    options -= 10;// 每次都减少10
    }
    byte[] bytes = baos.toByteArray();
    bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
    return bitmap;

    源码下载地址为:https://download.csdn.net/download/qq_26149467/10306062

    工具类上的注解会报错,直接删掉就好。

    调用:

    String compressImage = pictureUtil.transImage(path, 1224, 1224, 70, 1024 * 1024 * 1);
    java.io.File compressedPic = new java.io.File(compressImage);
    if (compressedPic.exists()) {
        uploadPic(compressImage, index);
    } else {//直接上传
        uploadPic(path, index);
    }

    展开全文
  • 如何压缩图片大小并保证图片分辨率不变 社保图片证件照要求怎么达到 快速压缩图片 改变图片大小 像素不变 分辨率不变
  • 可以一键修改图片的分辨率以及压缩图片大小
  • 今天帮我妹妹修改一个图片尺寸大小,发现在线修改图片分辨率、文件大小和尺寸的网站极坑!!! 不说功能不够人性化,收费还贼离谱。 本着技术宅男永不为奴,白嫖党万岁的原则,良心推荐一款不收费的Windows系统软件...
  • i++)//压缩图片 { for (int j = 0; j ; j++) { Color color = t2d.GetPixel(j * 5, i * 5); texture.SetPixel(j, i, color); } } texture.Apply(); byte[] imagesst = texture.EncodeToJPG(); File...
  • 用PHOTOSHOP调整图片分辨率及图片大小压缩处理方法 很多网友遇到图像文件过大分辨率过高超过300K无法上传图片今天在这里发个帖介绍使用PHOTOSHOP如何调整图片分辨率及图像文件大小 首先下载Photoshop 7.01简体中文版...
  • * @param f 图片所在的文件夹路径  * @param filelist 图片路径  * @param ext 扩展名  * @param n 图片名  * @param w 目标宽  * @param h 目标高  * @param per 百分比  */   public ...
  • 因为项目需要 要求我把给定的图片调整分辨率压缩图片大小。在网上查找了很多大神的建议和源码,但是所有问题都集中在一个点上:图片的尺寸 给定的图片尺寸为[img=...
  • java压缩图片大小不改变图片分辨率

    万次阅读 2018-04-16 16:59:09
    因此在上传图片的时候就要对图片进行压缩处理操作,经过百度,网上普遍有两种,一种是改变图片长宽,按比例或者设置长宽对图片进行缩小,另一种是不改变图片的宽高,改变图片的质量。关于改变长宽的做法,网上大多数...
  • 那接下来就是参考业界图片压缩方案了。本篇从实践角度来给大家做一下前车之鉴???一、分析图片占用大小优化之前,肯定要先分析一下我们的包那么大,那到底图片占了多大,对吧?要是图片只占了一点点,那就算全删了也...
  • 最近遇见个需求,需要压缩图片,但是很多涉及到的方法类,要么对jdk依赖比较大,要么对系统的配置有要求,经过几天的研究合测试,终于整了一个还算比较全的方案。 代码 注解1:关于根据url读取图片的方法有很多,...
  • 最近的一个项目需求是在不改变图片像素和分辨率的前提下降低图片大小 wtf 内心是崩溃的,降低图片大小可以 还要求不改变分辨率 好在 有师傅的指导 还是完成了需求 说下步骤 1.使用opencv降低图片大小 此时 只有图片...
  • 我看了网上大多数对图片压缩都是基于对图片width和hight进行裁剪来降低图片实际大小,但这种方式容易导致图片内容的丢失,所以推荐大家采用以下这种方式 import java.awt.image.BufferedImage; import java.awt...
  • PHP处理压缩图片,改变图片分辨率

    千次阅读 2013-06-13 17:21:42
    echo "你的GD库不能使用jpeg格式的图片,请使用其它格式的图片!’java script:go(-1);’>返回</a>"; exit(); } $im = ImageCreateFromJpeg($srcFile); break; case 3: $im = ImageCreateFromPNG...
  • 压缩图像分辨率要求

    2012-12-19 09:39:33
    许多软件的视频编码都采用xvid压缩,但是xvid对压缩的图像分辨率是有要求的。 通常情况下对于视频会议的分辨率都支持: 如: 视频分辨率是指视频会议产品所成图像的大小或尺寸。常见的视像分辨率有352×288,176×...
  • 文件上传时,有的图片我们并不强求的...因此在上传图片的时候就要对图片进行压缩处理操作,经过百度,网上普遍有两种,一种是改变图片长宽,按比例或者设置长宽对图片进行缩小,另一种是不改变图片的宽高,改变...
  • ⭐批量压缩图片两步操作:Step 1:插入图片到PPTStep 2:选中图片,鼠标右键点击「另存为图片」,图片压缩完成压缩...在默认情况下,软件会自动压缩图片,且默认分辨率较低。要想保持图片的清晰度,勾选「不压缩文件...
  • 它提供在线图片压缩、PDF压缩、PDF合并、PDF分割的服务,支持批量处理、打包下载。网站无需注册,页面简洁美观、无广告,没有任何多余的干扰信息。只需要上传、处理、下载,三步即可搞定你的文档处理。图片压缩...
  • 码个蛋(codeegg) 第 980 次推文作者:Like_Codeing链接:https://juejin.im/post/5ec7302c518825434062f497图片在移动开发中占据中举足轻重的地位,早期的android 应用页面Ui相对简单,但随着Android系统不断的升级...
  • 使用PhotoShop,导入图片,导出选择“存储为web所用格式”,之后可以调整...图好快这个网站提供在线压缩,可免费导出压缩效果稍微次一些的图片,效果不错(想白嫖又不嫌麻烦可以反复导入导出直到需要的大小OwO) ...
  • 需求:因项目需求中有对照片分辨率的具体要求,需要进行已有照片的批量分辨率处理。已有照片统一为1024*768分辨率,要求处理成320*240 / 240*200两种分辨率形式。...方法是先按较大的边进行等比例压缩压缩...
  • 刚接触照片或者PS的时候相信大家对分辨率和像素这个事都是不是很清楚的,现在接触分辨率想必也是去买手机的时候听到说这个手机镜头像素有多高多高,2000万柔光双摄照亮你的美,听上去像素好高哇,去买了个单反,1000...
  • 如题,这个东西超牛逼,前端压缩、缩放图片,还支持在手机上运行,使用起来也很简单: lrz(filePath, { width: 285, height: 164, done: function (results) { img.src = results.base64; } }); filePath支持...
  • 图片进行压缩,由200K左右压缩到50k,主要是通过改变图片格式和改变图片质量(但是还是可以清晰的看到图片内容),以及改变分辨率

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 963
精华内容 385
关键字:

压缩图片分辨率