图片压缩后再上传
1 | private void uploadHeadPortrait(Uri imgUri) { |
上面用到底下的图片压缩
、Bitmap处理:变圆、读取、存、缩放等
ImageCompress图片压缩
1 | package rongshanghui.tastebychance.com.rongshanghui.util; |
在前面的GGBA颜色制作特效这篇笔记中,说了图片由像素组成,像素由
色相,饱和度,亮度组成。当图片的像素不变时,把它读取到内存中不是不会节省开销的。
这里有一个压缩质量的方法来压缩图片,要把图片压缩到100k以下
1 | public static void compressBmpToFile(Bitmap bmp,File file){ |
如果原来你读取图片时发生内存溢出,然后高兴的去调用这个方法,你会发现,并没什么卵用。
还是照样溢出。
这是为什么呢?这个图片压缩的是质量,图片的长宽没变,然后得像素不变,然后得出不会节省内存的结论。
所以该溢出还是要溢出。
那么是什么让图片质量下降了?官方文档说这是像素组成元素中的亮度被抛弃的缘故。所以质量压缩会让
图变得模糊。
那么怎么才能降低像素呢,那自然是调整长宽。
长宽变小了,像素自然低了。
1 | private Bitmap compressImageFromFile(String srcPath) { |
Bitmap处理:变圆、读取、存、缩放等
1 | package rongshanghui.tastebychance.com.rongshanghui.util; |
自己定义的多种图片缓存(Java六大原则)
自定义图片缓存策略
- 定义缓存接口
1 | public interface ImageCache { |
- 内存缓存
1 | public class MemoryCache implements ImageCache { |
- sd卡缓存
1 | public class DiskCache implements ImageCache{ |
- 双缓存
1 | public class DoubleCache implements ImageCache { |
- 关闭流的类
1 | public class CloseableUtil { |
- 图片加载
1 | public class ImageLoader { |
调用
1 | ImageLoader imageLoader = new ImageLoader(); |
ImageIO图片工具类(获取路径、保存相册等)
1 | package com.u1city.androidframe.common.file.image; |
Pic2Ascii图片转ascii码
1 | package me.veryyoung; |
截图工具类
1 | package com.u1city.androidframe.common.image.screenshot; |
指定View的截图
截图
1 | import android.app.Activity; |