iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何在Android应用中对图片进行压缩
  • 782
分享到

如何在Android应用中对图片进行压缩

android中对roi 2023-05-31 08:05:37 782人浏览 泡泡鱼
摘要

本篇文章给大家分享的是有关如何在Android应用中对图片进行压缩,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、质量压缩法设置bitmap options属性,降低图片的质

本篇文章给大家分享的是有关如何在Android应用中对图片进行压缩,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

1、质量压缩法

设置bitmap options属性,降低图片的质量,像素不会减少

第一个参数为需要压缩的bitmap图片对象,第二个参数为压缩后图片保存的位置

设置options 属性0-100,来实现压缩。

private Bitmap compressImage(Bitmap image) {  ByteArrayOutputStream baos = new ByteArrayOutputStream();  image.compress(Bitmap.CompressFORMat.JPEG, 100, baos);//质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中  int options = 100;  while ( baos.toByteArray().length / 1024>100) { //循环判断如果压缩后图片是否大于100kb,大于继续压缩  baos.reset();//重置baos即清空baos  image.compress(Bitmap.CompressFormat.JPEG, options, baos);//这里压缩options%,把压缩后的数据存放到baos中  options -= 10;//每次都减少10  }  ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());//把压缩后的数据baos存放到ByteArrayInputStream中  Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);//把ByteArrayInputStream数据生成图片  return bitmap;  }

质量压缩不会减少图片的像素。它是在保持像素不变的前提下改变图片的位深及透明度等,来达到压缩图片的目的。进过它压缩的图片文件大小会有改变,但是导入成bitmap后占得内存是不变的。因为要保持像素不变,所以它就无法无限压缩,到达一个值之后就不会继续变小了。显然这个方法并不适用于缩略图,其实也不适用于想通过压缩图片减少内存的适用,仅仅适用于想在保证图片质量的同时减少文件大小的情况而已。

2、采样率压缩法

private Bitmap getimage(String srcPath) {  BitmapFactory.Options newOpts = new BitmapFactory.Options();  //开始读入图片,此时把options.inJustDecodeBounds 设回true了  newOpts.inJustDecodeBounds = true;  Bitmap bitmap = BitmapFactory.decodeFile(srcPath,newOpts);//此时返回bm为空  newOpts.inJustDecodeBounds = false;  int w = newOpts.outWidth;  int h = newOpts.outHeight;  //现在主流手机比较多是1280*720分辨率,所以高和宽我们设置为  float hh = 1280f;//这里设置高度为1280f  float ww = 720f;//这里设置宽度为720f  //缩放比。由于是固定比例缩放,只用高或者宽其中一个数据进行计算即可  int be = 1;//be=1表示不缩放  if (w > h && w > ww) {//如果宽度大的话根据宽度固定大小缩放  be = (int) (newOpts.outWidth / ww);  } else if (w < h && h > hh) {//如果高度高的话根据宽度固定大小缩放  be = (int) (newOpts.outHeight / hh);  }  if (be <= 0)  be = 1;  newOpts.inSampleSize = be;//设置缩放比例  //重新读入图片,注意此时已经把options.inJustDecodeBounds 设回false了  bitmap = BitmapFactory.decodeFile(srcPath, newOpts);  return compressImage(bitmap);//压缩好比例大小后再进行质量压缩  }

这个方法的好处是大大的缩小了内存的使用,在读存储器上的图片时,如果不需要高清的效果,可以先只读取图片的边,通过宽和高设定好取样率后再加载图片,这样就不会过多的占用内存。

3、缩放法

通过缩放图片像素来减少图片占用内存大小。

方式一

public static void compressBitmapToFile(Bitmap bmp, File file){ // 尺寸压缩倍数,值越大,图片尺寸越小 int ratio = 2; // 压缩Bitmap到对应尺寸 Bitmap result = Bitmap.createBitmap(bmp.getWidth() / ratio, bmp.getHeight() / ratio, Config.ARGB_8888); canvas canvas = new Canvas(result); Rect rect = new Rect(0, 0, bmp.getWidth() / ratio, bmp.getHeight() / ratio); canvas.drawBitmap(bmp, null, rect, null); ByteArrayOutputStream baos = new ByteArrayOutputStream(); // 把压缩后的数据存放到baos中 result.compress(Bitmap.CompressFormat.JPEG, 100 ,baos); try {  FileOutputStream fos = new FileOutputStream(file);  fos.write(baos.toByteArray());  fos.flush();  fos.close();  } catch (Exception e) {  e.printStackTrace();  } }

方式二

ByteArrayOutputStream out = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 85, out); float zoom = (float)Math.sqrt(size * 1024 / (float)out.toByteArray().length); Matrix matrix = new Matrix(); matrix.setScale(zoom, zoom); Bitmap result = Bitmap.createBitmap(image, 0, 0, image.getWidth(), image.getHeight(), matrix, true); out.reset(); result.compress(Bitmap.CompressFormat.JPEG, 85, out); while(out.toByteArray().length > size * 1024){  System.out.println(out.toByteArray().length);  matrix.setScale(0.9f, 0.9f);  result = Bitmap.createBitmap(result, 0, 0, result.getWidth(), result.getHeight(), matrix, true);  out.reset();  result.compress(Bitmap.CompressFormat.JPEG, 85, out); }

缩放法其实很简单,设定好matrix,在createBitmap就可以了。但是我们并不知道缩放比例,而是要求了图片的最终大小。直接用大小的比例来做的话肯定是有问题的,用大小比例的开方来做会比较接近,但是还是有差距。但是只要再做一下微调应该就可以了,微调的话就是修改过的图片大小比最终大小还大的话,就进行0.8的压缩再比较,循环直到大小合适。这样就能得到合适大小的图片,而且也能比较保证质量。

4、JNI调用libjpeg库压缩

JNI静态调用 bitherlibjni.c 中的方法来实现压缩Java_net_bither_util_NativeUtil_compressBitmap

net_bither_util为包名,NativeUtil为类名,compressBitmap为native方法名,我们只需要调用saveBitmap()方法就可以,bmp 需要压缩的Bitmap对象, quality压缩质量0-100, fileName 压缩后要保存的文件地址, optimize 是否采用哈弗曼表数据计算 品质相差5-10倍。

jstring Java_net_bither_util_NativeUtil_compressBitmap(JNIEnv* env, jobject thiz, jobject bitmapcolor, int w, int h, int quality, jbyteArray fileNameStr, jboolean optimize) { AndroidBitmapinfo infocolor; BYTE* pixelscolor; int ret; BYTE * data; BYTE *tmpdata; char * fileName = jstrinTostring(env, fileNameStr); if ((ret = AndroidBitmap_getInfo(env, bitmapcolor, &infocolor)) < 0) { LOGE("AndroidBitmap_getInfo() failed ! error=%d", ret); return (*env)->NewStringUTF(env, "0");; } if ((ret = AndroidBitmap_lockPixels(env, bitmapcolor, &pixelscolor)) < 0) { LOGE("AndroidBitmap_lockPixels() failed ! error=%d", ret); } BYTE r, g, b; data = NULL; data = malloc(w * h * 3); tmpdata = data; int j = 0, i = 0; int color; for (i = 0; i < h; i++) { for (j = 0; j < w; j++) { color = *((int *) pixelscolor); r = ((color & 0x00FF0000) >> 16); g = ((color & 0x0000FF00) >> 8); b = color & 0x000000FF; *data = b; *(data + 1) = g; *(data + 2) = r; data = data + 3; pixelscolor += 4; } } AndroidBitmap_unlockPixels(env, bitmapcolor); int resultCode= generateJPEG(tmpdata, w, h, quality, fileName, optimize); free(tmpdata); if(resultCode==0){ jstring result=(*env)->NewStringUTF(env, error); error=NULL; return result; } return (*env)->NewStringUTF(env, "1"); //success}

5、质量压缩+采样率压缩+JNI调用libjpeg库压缩结合使用

首先通过尺寸压缩,压缩到手机常用的一个分辨率(1280*960 微信好像是压缩到这个分辨率),然后我们要把图片压缩到一定大小以内(比如说200k),然后通过循环进行质量压缩来计算options需要设置为多少,最后调用JNI压缩。

计算缩放比

 public static int getRatiOSize(int bitWidth, int bitHeight) { // 图片最大分辨率 int imageHeight = 1280; int imageWidth = 960; // 缩放比 int ratio = 1; // 缩放比,由于是固定比例缩放,只用高或者宽其中一个数据进行计算即可 if (bitWidth > bitHeight && bitWidth > imageWidth) { // 如果图片宽度比高度大,以宽度为基准 ratio = bitWidth / imageWidth; } else if (bitWidth < bitHeight && bitHeight > imageHeight) { // 如果图片高度比宽度大,以高度为基准 ratio = bitHeight / imageHeight; } // 最小比率为1 if (ratio <= 0) ratio = 1; return ratio; }

质量压缩+JNI压缩

 public static void compressBitmap(String curFilePath, String targetFilePath) { // 最大图片大小 500KB int maxSize = 500; //根据地址获取bitmap Bitmap result = getBitmapFromFile(curFilePath); ByteArrayOutputStream baos = new ByteArrayOutputStream(); // 质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中 int quality = 100; result.compress(Bitmap.CompressFormat.JPEG, quality, baos); // 循环判断如果压缩后图片是否大于500kb,大于继续压缩 while (baos.toByteArray().length / 1024 > maxSize) { // 重置baos即清空baos baos.reset(); // 每次都减少10 quality -= 10; // 这里压缩quality,把压缩后的数据存放到baos中 result.compress(Bitmap.CompressFormat.JPEG, quality, baos); } // JNI保存图片到SD卡 这个关键 NativeUtil.saveBitmap(result, quality, targetFilePath, true); // 释放Bitmap if (!result.isRecycled()) { result.recycle(); } }

JNI图片压缩工具类

package net.bither.util;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Matrix;import android.graphics.Rect;import android.media.ExifInterface;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;public class NativeUtil { private static int DEFAULT_QUALITY = 95;  public static void compressBitmap(Bitmap bit, String fileName, boolean optimize) { saveBitmap(bit, DEFAULT_QUALITY, fileName, optimize); }  public static void compressBitmap(Bitmap image, String filePath) { // 最大图片大小 150KB int maxSize = 150; // 获取尺寸压缩倍数 int ratio = NativeUtil.getRatioSize(image.getWidth(),image.getHeight()); // 压缩Bitmap到对应尺寸 Bitmap result = Bitmap.createBitmap(image.getWidth() / ratio,image.getHeight() / ratio, Config.ARGB_8888); Canvas canvas = new Canvas(result); Rect rect = new Rect(0, 0, image.getWidth() / ratio, image.getHeight() / ratio); canvas.drawBitmap(image,null,rect,null); ByteArrayOutputStream baos = new ByteArrayOutputStream(); // 质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中 int options = 100; result.compress(Bitmap.CompressFormat.JPEG, options, baos); // 循环判断如果压缩后图片是否大于100kb,大于继续压缩 while (baos.toByteArray().length / 1024 > maxSize) { // 重置baos即清空baos baos.reset(); // 每次都减少10 options -= 10; // 这里压缩options%,把压缩后的数据存放到baos中 result.compress(Bitmap.CompressFormat.JPEG, options, baos); } // JNI保存图片到SD卡 这个关键 NativeUtil.saveBitmap(result, options, filePath, true); // 释放Bitmap if (!result.isRecycled()) { result.recycle(); } }  public static void compressBitmap(String curFilePath, String targetFilePath) { // 最大图片大小 500KB int maxSize = 500; //根据地址获取bitmap Bitmap result = getBitmapFromFile(curFilePath); ByteArrayOutputStream baos = new ByteArrayOutputStream(); // 质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中 int quality = 100; result.compress(Bitmap.CompressFormat.JPEG, quality, baos); // 循环判断如果压缩后图片是否大于500kb,大于继续压缩 while (baos.toByteArray().length / 1024 > maxSize) { // 重置baos即清空baos baos.reset(); // 每次都减少10 quality -= 10; // 这里压缩quality,把压缩后的数据存放到baos中 result.compress(Bitmap.CompressFormat.JPEG, quality, baos); } // JNI保存图片到SD卡 这个关键 NativeUtil.saveBitmap(result, quality, targetFilePath, true); // 释放Bitmap if (!result.isRecycled()) { result.recycle(); } }  public static int getRatioSize(int bitWidth, int bitHeight) { // 图片最大分辨率 int imageHeight = 1280; int imageWidth = 960; // 缩放比 int ratio = 1; // 缩放比,由于是固定比例缩放,只用高或者宽其中一个数据进行计算即可 if (bitWidth > bitHeight && bitWidth > imageWidth) { // 如果图片宽度比高度大,以宽度为基准 ratio = bitWidth / imageWidth; } else if (bitWidth < bitHeight && bitHeight > imageHeight) { // 如果图片高度比宽度大,以高度为基准 ratio = bitHeight / imageHeight; } // 最小比率为1 if (ratio <= 0) ratio = 1; return ratio; }  public static Bitmap getBitmapFromFile(String filePath){ BitmapFactory.Options newOpts = new BitmapFactory.Options(); newOpts.inJustDecodeBounds = true;//只读边,不读内容  BitmapFactory.decodeFile(filePath, newOpts); int w = newOpts.outWidth; int h = newOpts.outHeight; // 获取尺寸压缩倍数 newOpts.inSampleSize = NativeUtil.getRatioSize(w,h); newOpts.inJustDecodeBounds = false;//读取所有内容 newOpts.inDither = false; newOpts.inPurgeable=true; newOpts.inInputShareable=true; newOpts.inTempStorage = new byte[32 * 1024]; Bitmap bitmap = null; File file = new File(filePath); FileInputStream fs = null; try { fs = new FileInputStream(file); } catch (FileNotFoundException e) { e.printStackTrace(); } try { if(fs!=null){ bitmap = BitmapFactory.decodeFileDescriptor(fs.getFD(),null,newOpts); //旋转图片 int photoDegree = readPictureDegree(filePath); if(photoDegree != 0){  Matrix matrix = new Matrix();  matrix.postRotate(photoDegree);  // 创建新的图片  bitmap = Bitmap.createBitmap(bitmap, 0, 0,  bitmap.getWidth(), bitmap.getHeight(), matrix, true); } } } catch (IOException e) { e.printStackTrace(); } finally{ if(fs!=null) { try {  fs.close(); } catch (IOException e) {  e.printStackTrace(); } } } return bitmap; }  public static int readPictureDegree(String path) { int degree = 0; try { ExifInterface exifInterface = new ExifInterface(path); int orientation = exifInterface.getAttributeInt(  ExifInterface.TAG_ORIENTATION,  ExifInterface.ORIENTATION_NORMAL); switch (orientation) { case ExifInterface.ORIENTATION_ROTATE_90:  degree = 90;  break; case ExifInterface.ORIENTATION_ROTATE_180:  degree = 180;  break; case ExifInterface.ORIENTATION_ROTATE_270:  degree = 270;  break; } } catch (IOException e) { e.printStackTrace(); } return degree; }  private static void saveBitmap(Bitmap bit, int quality, String fileName, boolean optimize) { compressBitmap(bit, bit.getWidth(), bit.getHeight(), quality, fileName.getBytes(), optimize); }  private static native String compressBitmap(Bitmap bit, int w, int h, int quality, byte[] fileNameBytes,   boolean optimize);  static { System.loadLibrary("jpegbither"); System.loadLibrary("bitherjni"); }}

图片压缩处理中可能遇到的问题:

请求系统相册有三个Action

注意:图库(缩略图) 和 图片(原图)

ACTION_OPEN_DOCUMENT 仅限4.4或以上使用 默认打开原图

从图片获取到的uri 格式为:content://com.android.providers.media.documents/document/image%666>>>

ACTION_GET_CONTENT 4.4以下默认打开缩略图 。 以上打开文件管理器 供选择,选择图库打开为缩略图页面,选择图片打开为原图浏览。

从图库获取到的uri格式为:content://media/external/images/media/666666

ACTION_PICK 都可用,打开默认是缩略图界面,还需要进一步点开查看。

参考代码:

public void pickFromGallery() { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { startActivityForResult(new Intent(Intent.ACTION_GET_CONTENT).setType("image public static String getDataColumn(Context context, Uri uri, String selection, String[] selectionArgs) { Cursor cursor = null; final String column = "_data"; final String[] projection = { column }; try { cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs, null); if (cursor != null && cursor.moveToFirst()) { final int column_index = cursor.getColumnIndexOrThrow(column); return cursor.getString(column_index); } } finally { if (cursor != null) cursor.close(); } return null; }  public static boolean isExternalStorageDocument(Uri uri) { return "com.android.externalstorage.documents".equals(uri.getAuthority()); }  public static boolean isDownloadsDocument(Uri uri) { return "com.android.providers.downloads.documents".equals(uri.getAuthority()); }  public static boolean isMediaDocument(Uri uri) { return "com.android.providers.media.documents".equals(uri.getAuthority()); }

以上就是如何在Android应用中对图片进行压缩,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网精选频道。

--结束END--

本文标题: 如何在Android应用中对图片进行压缩

本文链接: https://www.lsjlt.com/news/224510.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在Android应用中对图片进行压缩
    本篇文章给大家分享的是有关如何在Android应用中对图片进行压缩,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、质量压缩法设置bitmap options属性,降低图片的质...
    99+
    2023-05-31
    android 中对 roi
  • Android应用中怎么对图片进行压缩
    Android应用中怎么对图片进行压缩?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。为何要压缩体积的原因如果你的图片是要准备上传的,那动辄几M的大小肯定不行的,况且图片分辨率大...
    99+
    2023-05-31
    android roi
  • Android应用中如何对文件进行压缩与解压缩
    Android应用中如何对文件进行压缩与解压缩?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。使用场景当我们在应用的Assets目录中需要加入文件时,可以直接将源文件放入,但这样...
    99+
    2023-05-31
    android roi
  • Java 中如何对图片进行压缩处理
    问题背景 图片过大时,会造成页面卡顿甚至于报错,而且现在页面,接口,很多地儿都有报文传输的最大限制要求,另外不知道各位有没有遇到过页面渲染比较大的 base64 图片时,会非常的卡顿。所以,我们必须对用户上传的原始图片进行压缩处理。 为何...
    99+
    2023-08-31
    java 开发语言 压缩图片
  • 使用canvas怎么对图片进行压缩
    本篇文章为大家展示了使用canvas怎么对图片进行压缩,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前提的函数将file文件转化为base64function changeFileToBa...
    99+
    2023-06-09
  • 如何在Android中对字符串进行压缩
    这期内容当中小编将会给大家带来有关如何在Android中对字符串进行压缩,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。使用到的类库GZIPOutputStream代码示例import java....
    99+
    2023-05-30
    android 字符串
  • 利用java怎么对图片进行压缩与缩放
    这篇文章将为大家详细讲解有关利用java怎么对图片进行压缩与缩放,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。压缩public static boolean c...
    99+
    2023-05-31
    java ava
  • 如何使用Node进行图片压缩
    这篇文章主要介绍“如何使用Node进行图片压缩”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用Node进行图片压缩”文章能帮助大家解决问题。我们先把图片上传到后端,看看后端接收了什么样的参数。...
    99+
    2023-07-05
  • 如何使用python对图片进行批量压缩详解
    目录前言使用Python和Pillow模块压缩图片1、优化flag2、渐进式JPEG3、JPEG动态质量使用Python和Selenium模块操纵Squoosh批量压缩图片Pytho...
    99+
    2022-11-11
  • 怎么在Android中对视频进行压缩
    这篇文章将为大家详细讲解有关怎么在Android中对视频进行压缩,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。cmd = "-y -i /s...
    99+
    2023-05-30
    android
  • 怎么使用python对图片进行批量压缩
    本篇内容主要讲解“怎么使用python对图片进行批量压缩”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用python对图片进行批量压缩”吧!使用Python和Pillow模块压缩图片Pil...
    99+
    2023-07-02
  • Android应用中实现图片压缩的方法有哪些
    这篇文章将为大家详细讲解有关Android应用中实现图片压缩的方法有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Android图片压缩几种方式总结图片压缩在Android开发中很常见也...
    99+
    2023-05-31
    android roi
  • 怎么在Android应用中利用Bitmap对图片进行优化
    这篇文章给大家介绍怎么在Android应用中利用Bitmap对图片进行优化,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前言在Android开发过程中,Bitmap往往会给开发者带来一些困扰,因为对Bitmap操作不慎...
    99+
    2023-05-31
    android roi bitmap
  • 如何在Android中利用ImageView.src对图片进行拉伸处理
    如何在Android中利用ImageView.src对图片进行拉伸处理?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。方法如下:<LinearLayout andro...
    99+
    2023-05-31
    imageview android age
  • 如何在 ASP 中使用 http shell 对象进行数据压缩?
    ASP是一种常用的Web开发语言,其灵活性和易用性使其成为了许多开发者的首选。在ASP中,使用http shell对象进行数据压缩是一种非常常见的操作,本文将介绍如何在ASP中使用http shell对象进行数据压缩。 一、什么是http ...
    99+
    2023-06-02
    http shell 对象
  • android开发中如何对图片进行处理
    这篇文章给大家介绍android开发中如何对图片进行处理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。创建一个Java类CircleImageView把下面的代码复制过去,报错的导包package de.hdodenh...
    99+
    2023-05-31
    android roi
  • Android应用中怎么对超大的图片进行加载
    本篇文章为大家展示了Android应用中怎么对超大的图片进行加载,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 1.Bitmap的使用- 2.Android手机中加载图片的原理   有的时...
    99+
    2023-05-31
    android roi
  • 怎么在Android利用Matrix对图片进行旋转
    本篇文章给大家分享的是有关怎么在Android利用Matrix对图片进行旋转,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。自定义一个View,用来控制这两个图片的旋转。com....
    99+
    2023-05-31
    android matrix roi
  • 怎么使用uniapp组件对上传的图片进行压缩至1兆以内
    这篇文章主要介绍“怎么使用uniapp组件对上传的图片进行压缩至1兆以内”,在日常操作中,相信很多人在怎么使用uniapp组件对上传的图片进行压缩至1兆以内问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使...
    99+
    2023-07-04
  • mysql中如何进行数据压缩性能对比
    这篇文章给大家分享的是有关mysql中如何进行数据压缩性能对比的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. 测试环境1.1 软硬件一台 64位 2.6.18-92 内核Linux开发机,4G内存,4个280...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作