安卓 图片上传,压缩处理

Android端图片上传与服务端处理的实践指南 目前有多种图片压缩算法可供选择,而选择哪种算法往往取决于压缩后图片的质量要求、压缩速度以及资源消耗等因素。常用的图片压缩算法包括:JPEG/JPG:广泛应用于网络图片的压缩,通过有损压缩可以达到较高的压缩比,适用于非透明图片。PNG:无损压缩格式,适用于需要保留透明度的图片,如图标和LOGO。WebP:由Google开发,支持无损和有损压缩,提供了比JPEG和PNG更高的压缩效率。 阅读详情

上传图片并压缩

1,我就发 关键的代码吧,第一个是 这样调用的位置

String nameNew= BitmapUtil.compressImage(fileName);//裁剪图片
    //创建上传文件对象
    File file = new File(nameNew);
    //创建RequestBody封装参数
    RequestBody fileBody = RequestBody.create(MediaType.parse("image/jpg"), file);
    //创建Request
    Request request = new Request.Builder()
            .url(url)
            .post(fileBody)
            .build();

2,压缩方法:


```java
   /**
     * 图片压缩-质量压缩
     *
     * @param filePath 源图片路径
     * @return 压缩后的路径
     */

    public static String compressImage(String filePath) {

        //原文件
        File oldFile = new File(filePath);


        //压缩文件路径 照片路径/
        String targetPath = oldFile.getPath();
        int quality = 50;//压缩比例0-100
        Bitmap bm = getSmallBitmap(filePath);//获取一定尺寸的图片
        int degree = getRotateAngle(filePath);//获取相片拍摄角度

        if (degree != 0) {//旋转照片角度,防止头像横着显示
            bm = setRotateAngle(degree,bm);
        }
        File outputFile = new File(targetPath);
        try {
            if (!outputFile.exists()) {
                outputFile.getParentFile().mkdirs();
                //outputFile.createNewFile();
            } else {
//                outputFile.delete();//需要注释否则 会删除 相册 原有的图片
            }
            FileOutputStream out = new FileOutputStream(outputFile);
            bm.compress(Bitmap.CompressFormat.JPEG, quality, out);
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
            return filePath;
        }
        return outputFile.getPath();
    }

    /**
     * 根据路径获得图片信息并按比例压缩,返回bitmap
     */
    public static Bitmap getSmallBitmap(String filePath) {
        final BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;//只解析图片边沿,获取宽高
        BitmapFactory.decodeFile(filePath, options);
        // 计算缩放比
        options.inSampleSize = calculateInSampleSize(options, 1080, 1920);
        // 完整解析图片返回bitmap
        options.inJustDecodeBounds = false;
        return BitmapFactory.decodeFile(filePath, options);
    }

    // 计算缩放比
    public static int calculateInSampleSize(BitmapFactory.Options options,
                                            int reqWidth, int reqHeight) {
        final int height = options.outHeight;
        final int width = options.outWidth;
        int inSampleSize = 1;
        if (height > reqHeight || width > reqWidth) {
            final int heightRatio = Math.round((float) height / (float) reqHeight);
            final int widthRatio = Math.round((float) width / (float) reqWidth);
            inSampleSize = heightRatio < widthRatio ? heightRatio : widthRatio;
        }
        return inSampleSize;
    }

3,好了, 大概就这些,主要代码,希望可以带给大家作用。
Android图片上传实战指南 在移动互联网高速发展的今天,Android 应用中图片上传功能已成为用户数据交互的重要组成部分。本章节将概述Android图片上传的基本流程,为后文详细讨论实现图片上传的核心技术打下基础。图片上传涉及获取图片、压缩处理、格式转换、构建HTTP请求以及服务器端接收等多个环节。在Android开发中,每一步都需要仔细处理以保证用户体验的流畅性及上传的高效性。 阅读详情

相关推荐

Android图片与视频压缩上传完整教程

本文还有配套的精品资源,点击获取 简介:本文详细介绍了在Android平台上实现图片和视频的压缩处理以及上传到服务器的完整流程。内容包括图片压缩原理、使用Android内置及第三方库进行图片压缩、使用HttpURLConnection和OkHttp进行图片上传以及视频压缩工具、帧率和比特率调整和视频转码的相关技术。此外,还探讨了视频上传时的分段上传、进度反馈和断点续传等高级...

weixin_29935511的博客 2379

android 图片上传,使用 httpclient 的MultipartEntity 上传

该上传案例使用springmvc 为后台使用httpclient 方法传递文件比文件流和base64方法上传文件更方便简介。 该案例首先获取图片并将图片写入应用的SD卡文件夹。然后再上传给服务器 关于在SD卡中创建应用文件夹请参照 http://blog.csdn.net/u012373815/article/details/47614715 准备工作导入JAR包 Android 端需要

哎幽的成长 4104

移动端图片上传与压缩技术实现指南

跨平台框架旨在将一套代码同时运行在不同平台,如iOS、Android、Web等。一些流行的跨平台框架包括React Native、Flutter以及Xamarin等。React Native通过JavaScript桥接原生组件,为开发者提供了接近原生的体验;Flutter则使用Dart语言,提供了自己的渲染引擎,使得界面表现高度一致;Xamarin使用C#作为开发语言,利用.NET的跨平台能力,共享大部分业务逻辑代码。为了实现图片压缩,这些框架都需要提供一套高效的图像处理能力。

weixin_31800911的博客 1025

okhttp3图片压缩上传_使用OkHttp上传图片

简介上传图片是一个APP的常见功能,可以是通过OOS上传到阿里云,也可以直接上传到Server后台,OOS有提供相应的SDK,此处忽略。下面通过OkHttp来实现图片的上传代码直接上代码UploadFileHelper.ktobject UploadFileHelper {//--------ContentTypeprivate val MEDIA_OBJECT_STREAM = MediaTyp...

weixin_31964135的博客 793

Android代码-简化上传图片之前必需的压缩方法

AdvancedLuban 中文版 AdvancedLuban —— Is a convenient simple Android image compression tool library.Provides multiple compression strategies.Different calling methods,Custom compression,Multi-Image synchronous compression and so on,Focus on a better picture compression experience Image Count Origin Total size Compressed Total size Time Cost 1 4.3Mb 85Kb 0.23s 4 14.22Mb 364Kb 1.38s 9 36.23Mb 745Kb 4.43s Import Maven me.shaohui.advancedluban library 1.3.5 pom or Gradle compil

Android图片压缩上传之基础篇

在android程序开发中我们经常见到需要上传图片的场景,在这里有个技术点,需要把图片压缩处理,然后再进行上传。这样可以减少流量的消耗,提高图片的上传速度等问题。 关于android如何压缩,网上的资料也是很多,但大多数都是代码片段,讲解压缩步骤,而没有一个实用的工具类库。那么如何将压缩算法封装成一个实用工具库呢?其中会遇到些什么问题,比如: 1.需要压缩的图片有多少 2.压缩后的图片是覆盖还是保存到另外的目录 3.如果是另存目录需要将原始图片删除吗 4.如果改变压缩后的图片的尺寸大小是按照原图的比例缩小还是直接指定大小 5.如果原图有旋转问题,需不需要进行修正 6.对于多图压缩是并发还是线性

电商项目文件上传

上传头像 接口地址:https://www.zhaoapi.cn/file/upload 返回格式:json 请求方式:get/post 接口备注:上传头像接口(file路径修改) 请求参数说明: 名称 类型 必填 说明 uid string 是 ...

qq_42219543的博客 557

基于STM32的超声波流量计设计

本项目基于STM32微控制器设计了一种超声波流量计,采用时间差法测量液体或气体的流速,计算流量并通过显示屏实时显示,同时支持远程数据传输。本设计通过STM32微控制器实现了基于时间差法的超声波流量计,集成了超声波信号采集、流量计算、状态显示和远程通信功能。本系统需要实现超声波信号的实时采集与处理,计算流速和流量,并将数据通过OLED显示和无线模块上传。系统需具备高精度的时间测量能力和良好的抗干扰能力。通过计算超声波在顺流和逆流方向上的传播时间差,结合管道直径与流体特性,计算流速并进一步计算流量。

stm32d1219的博客 2350

iOS 中图片压缩和图片上传

iOS 中图片压缩和图片上传在图片上传的过程中,肯定是需要想后台传递@“accessToken”,用来标识用户,另外我们还需要将图片压缩一下。 接下来就上代码了: AFHTTPSessionManager *manager = [AFHTTPSessionManager manger];//创建管理者 manager.responseSerializer = [AFHTTPReponseSerial

meiyulong518的博客 506

天地图Api4.0.怎么根据geojson的数据。把一个省的所有市区标记色块和文字

天地图

肖肖肖丽珠的博客 1513

Cursor插件安装CodeX保姆级教程:从登录到调整面板布局,一步不落

本文提供Cursor编辑器安装CodeX插件的详细教程,涵盖从登录到调整面板布局的全流程。通过优化界面布局和配置参数,帮助开发者提升编码效率,特别适合需要智能代码补全的编程场景。

weixin_42648844的博客 4764

删除上传到服务器端的文件,MultipartFile 上传、删除文件到静态资源服务器

第一步 首先是要文件传输,类似于文件传输的代码网上一大把/*** 上传文件到静态资源服务器* @param fileType 文件类型(1:图片;2:文件;3:语音)* @param is 图片文件流* @param filename 文件名* @param fileDir 文件目录(模块名/功能名;如:"usercenter/user")* @param isResize 是否压缩图片* @pa...

weixin_31182871的博客 921

Halcon形状模板匹配实战:inspect_shape_model参数优化指南

本文深入解析Halcon形状模板匹配中inspect_shape_model参数的优化技巧,涵盖NumLevels和Contrast参数的实战应用。通过具体案例展示如何平衡匹配速度与精度,帮助开发者高效调试形状模型,提升工业视觉检测的准确性和效率。

weixin_30342209的博客 618

Android 10|11 文件处理问题 EACCES EISDIR

open failed: EACCES Permission denied;open failed: EISDIR Is a directory FileNotFoundException(/storage/emulated/0/******.jpg: open failed: EACCES (Permission denied)) 在公司维护一个比较老的项目,在处理图片的时候,遇到了权限被拒绝的问题,权限也是动态申请的。。。 在手机里 权限设置里看到已经打开权限了, 这个情况只在Android 11上出

doubletwo21的博客 1132

5分钟搞定:用Pyannote和Whisper实现带说话人分离的语音转文字(附完整代码)

本文详细介绍了如何快速构建一个集成了说话人分离功能的语音转文字系统。通过结合OpenAI的Whisper模型进行高精度语音识别和Pyannote模型实现说话人分离,并提供了完整的代码实现、环境搭建指南以及核心的对齐与合并逻辑,帮助开发者高效处理会议录音、访谈等多说话人音频,实现自动化转录。

threejs5artist的博客 635

数字IC设计(8)之AHB-Lite总线(持续更新)

AHB总线全称Advanced High-performance Bus,意为先进高性能总线。推出该总线的目的是补充APB总线在性能上的不足,APB总线适合挂载低速外设,所以AHB总线用来挂载高性能的外设,这样子可以分工合作,节约资源。AHB总线可以实现多主多从的连接,此时需要设计仲裁机和matrix(矩阵),AHB-Lite一般用于一主多从,此时则不需要仲裁机和matrix,但是也可以用AHB-Lite来实现多主多从,就是设计多个layer,每个layer是一主多从,再把各个layer连起来;

qq_69440734的博客 2256

PHP:上传图片的图片压缩

PHP:上传图片的图片压缩

weixin_46001736的博客 546

《QGIS快速入门与应用基础》079:KML/KMZ格式:Google Earth兼容

KML/KMZ是专为地理可视化设计的空间数据格式,原生兼容Google Earth,支持点线面要素标注与多媒体集成。KML为XML文本格式,KMZ是其压缩版本。该格式优势在于可视化表现力强、跨平台共享便捷,适合地理标注、路线分享等场景,但存在属性支持弱、大数据量处理效率低等局限。QGIS中可便捷加载和导出KML/KMZ数据,需注意编码设为UTF-8、勾选"导出样式"以保留可视化效果。建议中小规模标注数据使用KMZ格式,确保关联资源完整,提升共享效率。

LuckyHanMo的博客 772

bitmap自己项目中处理遇到的问题

String path = "图片路径";Bitmap bitmap = BitmapFactory.decodeFile(path);安卓处理图片都是Bitmap,然后取到图片的信息,用来Bitmap处理压缩大小,旋转图片角度,保存本地等等处理然而实际项目中 Bitmap bitmap = BitmapFactory.decodeFile(path); 这个bitmap有可能拿到是空图...

192

Linux(31)Rockchip RK3568 Ubuntu22.04上部署 Docker: 问题与解决方案

本博客在总结这些问题及其解决方案,为遇到类似问题的兄弟提供参考,如果我后续有碰到其他Docker 问题也会在此更新补充。

我其实什么都不会 1646

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

android开发中对图片的处理方式汇总

1. LruCache 利用弱引用动态的管理内存(已经过时,但思想可以借鉴)LruCache(Least Recently Used Cache) 全称最近最少使用算法,其主要思想是使用SoftReference(或者WeakReference),因为我们的缓存容量是有限的,它会面临一个问题:当有新的内容需要加入我们的缓存,但我们的缓存空闲的空间不足以放进新的内容时,我们就需要舍弃原有的部分内容从

qq564045867的博客 5767

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Android 通过相机和系统相册获取图片,压缩,结果回调

在常规的App开发中,很多时候需要用户上传图片来进行一些业务上的实现,例如用户反馈,图片凭证等。我的Retrofit请求自己又封了一下,这儿就不粘贴。传文件和普通接口会有些不同,注意一下就好了。流程请看代码注释,其中的fileprovider,需要自己在manifest中声明。我使用的是EasyPermission框架,也可以自己写。你允许分享的文件路径。相关权限回调处理,可以去看我的另一篇博客。指的是一个 XML 文件,你需要在。标签,并定义了可共享的目录。目录下创建这个文件,告诉。

Android 领域开发程序员,希望通过写博客的方式不断的总结提升自己,大家共同进步哦! 706

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Android拍照选择图片上传服务器自定义控件

做android项目的时候总免不了遇到图片上传

程序员yqy的博客 3737

Android-图片选择,压缩,上传,加载的实例 (图片选择,压缩实现 )

6.1 图片选择 (1)打开 Android-Ultra-Photo-Selector 开源框架 (是个 library 项目); (2)在自己的 项目中 引入(两个地方/ 下篇 具体讲); (3)调用 选择器 主界面 ; (4)返回后 取得图片地址 ; 6.2 图片压缩 (1)根据 图片路径 得到 Bitmap; (2)进行 比例压缩 和 质量 压缩 (具体实现 下篇); (3)保存 sdcard

原小明 3524

Android AsyncHttpClient图片上传

本文,主要是解决app在与后台通信时,如何保证字段信息与图片同步上传。网上许多图片上传的实现,但笔者在开发中发现,这些并不是一个具体的流程。因此,写此文章总结下图片的上传流程。 图片上传流程,对于大部分app来说,是最长见的操作,拥有一个具体的流程,在开发中会带来许多方便。流程具体如下: 1、选择图片(拍摄、从图片库选择) 2、压缩与本地缓存,图片需要压缩,很容易理解,为防止OOM。而缓存是保

dreamon0714的博客 1770

android 阿里oss,Android OSS阿里图片上传

一 、阿里的官方文档二、Android图片上传的流程 + OSS选择图片压缩图片构建阿里上传请求对象OSS构建阿里的文件上传对象PutObjectRequestPutObjectRequest设置上传进度监听OSS对象发起请求asyncPutObject前面2步我就不写了,主要是写后面这几步。三、怎么构建阿里的OSS对象构建OSS对象要一个OSSCredentialProvider,OSSCred...

weixin_33520849的博客 620
上一篇: 安卓 ViewPager加载大图 左右滑动
下一篇: 安卓 相册选择多张
mawlAndroid
博客等级 码龄10年 5粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值