图片的压缩与裁剪

基于SpringBoot的图片上传组件,实现图片裁剪、Thumbnailator压缩的功能 本周三、周四、周五封装了一个基于SpringBoot的图片上传组件。功能流程如下: 1、前台页面有一个“选择文件”按钮,点击选择一张图片后,在前台界面进行显示。 2、双击显示出来的图片,前台使用cropper图片裁剪插件,将裁剪信息(裁剪起始点坐标 x,y,裁剪宽度width,裁剪高度height)以及上传的图片文件,传给后台。 3、后台对图片进行裁剪,再将裁剪后的图片进行压缩,把原图路径、 阅读详情

//图片根据不同的大小进行压缩

+(UIImage*)saveBitImage:(UIImage*)Image{

    

    NSData* dataImage = UIImageJPEGRepresentation(Image,1.0);

NSLog(@"imagesize:%d",dataImage.length/1024);

    NSUInteger sizeOrigin = [dataImage length];

    NSUInteger sizesizeOriginKB = sizeOrigin / 1024;

float a = 250;

float  b = (float)sizesizeOriginKB;

if (sizesizeOriginKB > 500)

{

a = 250;

}

else if(sizesizeOriginKB > 300)

{

a = 150;

}

else if(sizesizeOriginKB > 200)

{

a = 120;

}

else if(sizesizeOriginKB > 100)

{

a = 60;

}


float q = sqrt(a/b);

    // 图片大于500k要先进行压缩

    if (sizesizeOriginKB > 100)

{

NSLog(@"q:%f",q);

        CGSize sizeImage = [Image size];

        CGFloat iwidthSmall = sizeImage.width * q;

CGFloat iheightSmall = sizeImage.height * q;

        CGSize itemSizeSmall = CGSizeMake(iwidthSmall, iheightSmall);

        UIGraphicsBeginImageContext(itemSizeSmall);

        

        CGRect imageRectSmall = CGRectMake(0.0f, 0.0f, itemSizeSmall.width+2, itemSizeSmall.height+2);  //长和宽都增加2个像素,防止有些图片绘制旁边出现白线

        [Image drawInRect:imageRectSmall];

        

        UIImage *SmallImage = UIGraphicsGetImageFromCurrentImageContext();

        UIGraphicsEndImageContext();

        NSData *dataImageSend = UIImageJPEGRepresentation(SmallImage,0.85);

        

        dataImage = dataImageSend;

    }

    

    NSLog(@"压缩bit 后:%d",[dataImage length]/1024);

    return [UIImage imageWithData:dataImage];

}


//根据指定的大小进行等比例压缩

//图片压缩指定的宽高

+(UIImage*)saveBitImage:(UIImage*)Image WithWidth:(CGFloat)width andHeight:(CGFloat) height {

    

    NSData* dataImage = UIImageJPEGRepresentation(Image,1.0);

NSLog(@"imagesize:%d",dataImage.length/1024);

CGSize sizeImage = [Image size];

CGFloat scaleWidth = width;

CGFloat scaleHeight = height;

CGFloat wRate = width/sizeImage.width;

CGFloat hRate = height/sizeImage.height;

CGFloat scaleRate = 0.0;

if (wRate > hRate)

{

scaleRate = wRate;

}

else

{

scaleRate = hRate;

}

scaleWidth = sizeImage.width*scaleRate;

scaleHeight = sizeImage.height*scaleRate;


CGSize itemSizeSmall = CGSizeMake(scaleWidth, scaleHeight);

UIGraphicsBeginImageContext(itemSizeSmall);

CGRect imageRectSmall = CGRectMake(0,0, itemSizeSmall.width+2, itemSizeSmall.height+2);  //长和宽都增加2个像素,防止有些图片绘制旁边出现白线

[Image drawInRect:imageRectSmall];


UIImage *scaleImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

return scaleImage;

}



//图片裁剪

//截取指定大小的图片

-(UIImage*)getSubImage:(CGRect)rect withImage:(UIImage*)image

{

    CGImageRef subImageRef = CGImageCreateWithImageInRect(image.CGImage, rect);

    CGRect smallBounds = CGRectMake(0,0, CGImageGetWidth(subImageRef), CGImageGetHeight(subImageRef)); 

    UIGraphicsBeginImageContext(smallBounds.size);

    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextDrawImage(context, smallBounds, subImageRef);

    UIImage* smallImage = [UIImage imageWithCGImage:subImageRef];

    UIGraphicsEndImageContext(); 

    return smallImage;

} 



js 获取网络图片 压缩 裁剪 并上传 最近公司在做小程序直播,需要在公司后台添加直播商品,创建商品有要求 要求图片的尺寸是 1:1的。 公司有上千种产品准备是让运营人员直接选择商品 将需要的资料自动添加进去 点击确定就行 公司产品都是有商品图片的 但是图片的尺寸 不是1:1 而且图片都是大图,所以需要将图片进行压缩 后裁剪 再上传 下面开始了 :点击【选择】按钮后 1.将当前商品图片的url 转base64 ; 为什么要转呢 因为直接用url,toDataURL() 和putImageData()会报跨域错误 getBa... 阅读详情

相关推荐

图片裁剪压缩

图片裁剪压缩等比例缩放

Mac图像NSimage缩放、组合、压缩及CIImageRef和NSImage转换处理

声名:图片均来自于网络,如有侵权请联系删除!!! 1. 图片改变size: 挤压图片到目标尺寸 截取中间部分为目标尺寸 原图 2. 图片组合 3. ZLImage // // ZLImage.h // ImageDemo // // Created by Jiaozl 2018 on 2018/9/7. // Copyright © 2018年 Jia...

ADreamClusive的博客 5075

ThingsBoard实战指南:RPC命令下发与设备交互详解

本文深入解析了ThingsBoard平台中RPC命令下发的核心机制与实战应用。通过对比客户端与服务端RPC模式,详细阐述了从仪表盘控件配置到设备端Python代码响应的完整双向交互流程,并提供了常见问题排查与进阶优化技巧,帮助开发者构建可靠、实时的物联网设备控制系统。

weixin_29168153的博客 211

CGImageRef 图片压缩 裁减

CGImage和CGImageRef这两个应当是用来重绘图形的类,它们在应用时是按照图像的像素矩阵来绘制图片的,它们可以用来处理bitmap。 CGImageRef与UIImage的互转   CGImageRef转换成UIImage CGImageRef iOffscreen = CGBitmapContextCreateImage(context); UIImage

justinjing的专栏 3265

S7-1200控制S120变频器

②:硬件目录下,添加实物S120设备进行组态(其它现场设备--PROFINET IO--DRIVES......②:双击S120进行IP地址和设备名称设置(注:此处要与STATER软件设置S120一致)M10.0接通时,电机开始运行,M10.0断开,电机停止,调试完成。①:将S7-1200与S120进行通讯连线。④:STATER软件下设置与组态一致的报文。①:点击添加新设备,按实物进行设备组态。②:打开OB1,编写启动停止程序。①:查看S120报文地址。②:模块下添加DO矢量。③:子模块下添加报文。

weixin_38261173的博客 4867

python爬取《你好, 李焕英》豆瓣评论数据

# 导入工具包 import requests from bs4 import BeautifulSoup import time import pandas as pd import numpy as np # 请求头 headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36'} # =

python技巧分享 3455

ios Image裁剪成圆形的方法

我知道的实现方法有三种。 1、通过image mask来操作,需要添加mask目标图片。 2、通过imageview的layer来操作 如下代码 UIImageView * imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"oiuyfdsa.png"]]; imageView.frame =

x32sky的专栏 3万+

HRnet的pytorch实现

HRnet的pytorch实现

奋土的博客 1953

图片压缩 裁剪处理

<?php namespace Api\Controller; header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Methods' 'GET, POST'"); use Think\Controller; class ImgShearController extends Controller ...

霸气工作室 423

Synopsys的CoreConsultant使用简析

CoreConsultant使用简析

weixin_58165606的博客 1万+

学习C++的递归函数(包含汉诺塔讲解)

简单来讲,递归函数就是函数本身自己调用自己,那么函数又是什么呢?#include <stdio.h> //这行是头文件,不同的头文件可以用不同的函数int main() //这里就是一个main函数//这里是你要编写程序的内容return 0;(这是个小细节如下)所以我们平时用来练习的就是一个main函数,而且是一个整型类型的函数,而这也是最后一句话为什么要加一句 return 0;了,因为它最后要返回整数类型,其它整数也可以,但是大家规定为0,这是C++自带的函数。

2302_81032013的博客 2594

【vue3图片裁剪】上传、裁剪、压缩图片尺寸

【vue3图片裁剪】【代码】上传、裁剪、压缩图片尺寸。

qq_32768761的博客 3280

WPF高级 | WPF 与数据库交互:连接、查询与数据更新

WPF高级 | WPF 与数据库交互:连接、查询与数据更新,在现代应用程序开发中,数据的存储和管理至关重要。Windows Presentation Foundation(WPF)作为一款强大的图形界面开发框架,常常需要与数据库进行交互,以实现数据的持久化存储、读取和更新。本文将深入探讨 WPF 与数据库交互的各个方面,包括数据库连接的建立、数据查询的执行以及数据更新的操作,并通过丰富的代码示例和详细的概念解释,帮助读者掌握这一关键技术。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 6万+

android下的图片裁剪和压缩

private static Intent cut(Uri uri, float output, String path) { L.d("ImageCut", "output=" + output); Intent intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndType(uri, "ima

z1032293052的博客 597

如何调试10G/25G以太网IP自协商/Link Training

如果是40G/50G, 100G以太网,选的是多通道的IP,务必保证两端的通道0是正确对接上的,因为在做自协商的时候,以太网只使用通道0,其它通道需在自协商完成后再加入工作。b. 自协商的工作完全由IP自动完成的,所以只要配置没问题,你只需要耐心等待就可以看到自协商的完成,以an_good_check为标志,并且进入下一步linktraining。c. 在LT的过程中,首先你要等到IP能够锁定LT帧,即frame_lock拉高,然后你就可以进行你自己的LT算法了,与AN不同LT是由客户手动完成的。

qq_43416206的博客 1508

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

使用react-cropper结合图片压缩方法对图片进行裁剪压缩处理

最近项目要使用图片裁剪上传,因为项目采用的是react+antd,所以第一时间想到的是ImgCrop插件,但是这不满足项目需求,项目要求的是能够缩放裁剪框,最后确定了采用react-cropper来实现图片的自定义裁剪 安装react-cropper npm install --save react-cropper 新建一个CropperModal.jsx import React, { useState, useEffect, useCallback, useRef } from 'react' impo

weixin_43777074的博客 1285

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

python图片裁剪、压缩、拼接等操作

这里介绍Image模块的使用方法,想了解PIL各模块详细介绍的请点击 打开图片 im = Image.open("E:\mzw.jpg") 显示图片 im.show() 创建副本 (拷贝图片) im_copy = im.copy() 返回指定尺寸的图像的拷贝 region = im.resize((100, 100)) 获取图片文件的大小 # 获取文件大小:KB size = os.path.getsize(im) 获取图片文件的尺寸 im_size = im.size

马志武的博客 2432

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

JS 对 Base64 图片做简单压缩、裁剪处理 (记录)

图片压缩处理: /** * 以obj.height 为基准 压缩 * baseImage base64 图片 * obj { width: 900, height: 35 } * quality 图像质量 0 - 1 1 质量越高 */ function imageCompression(baseImage,obj,quality,callback) { var ...

眉头的骰 4091

微信小程序中裁剪图片以及压缩到指定尺寸并上传

微信小程序中裁剪图片和将图片压缩到指定尺寸后上传

李水灵的博客 1万+

Vue中图片裁剪/压缩后上传

使用插件vue-cropper(https://www.npmjs.com/package/vue-cropper/v/0.4.7); import { VueCropper } from ‘vue-cropper’ components: { VueCropper, }, 主要代码 页面使用 <CropImage @uploadSuccess="handleSuccess" :cropperIndex="index" :cropperSize="[300,120]" :fixedRadio="

weixin_42486911的博客 777

PHP压缩裁剪图片实例

/** * @param $srcImage 原图片路径 * @param $toFile 裁剪后图片路径 * @param int $maxWidth 裁剪最大的宽度 * @param int $maxHeight 裁剪后最大的高度 * @param int $imgQuality 图片的质量 * @return bool|string|void ...

Fanky_1220的博客 197

html 图片剪裁压缩,HTML5 canvas实现图片拉伸、压缩与裁剪

前言:我们在网页中经常会用到图片展示,通常情况下会给一个固定的宽高来显示这个图片,然而从服务器端上传的图片大小是不确定的,如果直接按默认填充这个框有时候就会特别丑orz。作为一个完(wai)美(mao)主(xie)义(hui)者,让图片们尽可能优美地展现在网页上是一个很愉悦的责任。今天就给太瘦小图片们伸展伸展或者给XXXL号减减肥吧(~ ̄▽ ̄)~一、canvas绘图API工欲善其事;必先利其器。隆...

weixin_29465407的博客 1166

C# 图片的压缩与裁剪

在做项目时,对图片的处理,以前都采用在上传时,限制其大小的方式,这样带来诸多不便。毕竟网站运维人员不一定会对图片做处理,经常超出大小限制,即使会使用图片处理软件的,也由于个人水平方面原因,处理效果差强人意。 于是采用C#为我们提供的图像编辑功能,实现一站式上传,通过程序生成所需大小、尺寸的目标图片。 进入正题--> 先说图片压缩 第一步:需要读取一个图片文件,读取方法:

jamesWQZY的博客 862

js 裁剪图片压缩并且上传 图片

今天接到一个比较懒的后台的要求:后台要求在裁剪图片的同时,根据文件大小来按不同比例压缩图片。页面代码&lt;!--** * *----------Created by 黄伟峰 on 2018/6/26.---------- *    ┏┓   ┏┓ *   ┏┛┻━━━┛┻┓ *   ┃       ┃ *   ┃   ━   ┃ *   ┃ ┳┛ ┗┳ ┃ *   ┃      ...

Huang_wf 4306
上一篇: 音频播放根据距离选择话筒模式
下一篇: 关于dateFromString函数的优化
sandy_shell
博客等级 码龄15年 17粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值