已解决
安卓将图片分割或者拉伸或者旋转到指定尺寸并保存到本地
来自网友在路上 135835提问 提问时间:2023-09-24 14:49:18阅读次数: 35
最佳答案 问答题库358位专家为你答疑解惑
直接上代码吧:你们要用的话可以按照想法改
package com.demo.util;import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.os.Environment;
import android.util.Log;import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;public class ImageProcessingUtils {// 将图片分割并拉伸到指定尺寸并保存到本地public static void splitAndSaveImage(String imagePath, int splitCount, int targetWidth, int targetHeight) {// 1. 读取原始图片Log.e("TAG", "imagePath=======" + imagePath);Bitmap originalBitmap = BitmapFactory.decodeFile(imagePath);try {int originalWidth = originalBitmap.getWidth();int originalHeight = originalBitmap.getHeight();Log.e("TAG", "originalWidth=======" + originalWidth);Log.e("TAG", "originalHeight=======" + originalHeight);// 2. 计算分割后每部分图片的宽度和高度int splitWidth = originalWidth / splitCount;int splitHeight = originalHeight - 1;Log.e("TAG", "splitWidth=======" + splitWidth);Log.e("TAG", "splitHeight=======" + splitHeight);// 3. 创建输出目录(如果不存在)File outputDirectory = new File(Environment.getExternalStorageDirectory() + "/split_images");if (!outputDirectory.exists()) {outputDirectory.mkdirs();}// 4. 分割并拉伸图片,并保存到本地for (int col = 0; col < splitCount; col++) {Log.e("TAG", "col=======" + col);int startX = col * splitWidth;int startY = 0;Log.e("TAG", "startX=======" + startX);Log.e("TAG", "startY=======" + startY);// 获取分割区域的图像Bitmap splitBitmap = Bitmap.createBitmap(originalBitmap, startX, startY,splitWidth, splitHeight);// 拉伸图像尺寸//Bitmap resizedBitmap = Bitmap.createScaledBitmap(splitBitmap,// targetWidth, targetHeight, true);// // 旋转图像// Matrix matrix = new Matrix();// matrix.postRotate(90);// Bitmap rotatedBitmap = Bitmap.createBitmap(splitBitmap, 0, 0,// splitWidth, splitHeight, matrix, true);
//// 构建输出文件路径String outputFilePath = outputDirectory.getAbsolutePath() + "/split_image_" + col + ".png";Log.e("TAG", "outputFilePath=======" + outputFilePath);// 保存图像到本地saveImage(splitBitmap, outputFilePath);}}catch (Exception c){Log.e("TAG", "c=======" + c.getMessage());}}// 保存图片到本地private static void saveImage(Bitmap bitmap, String filePath) {try {FileOutputStream out = new FileOutputStream(filePath);bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);out.flush();out.close();} catch (IOException e) {e.printStackTrace();}}
}
调用方式:ImageProcessingUtils.splitAndSaveImage(sourcePath,3,width,height);
sourcePath:原始图像地址3:平均分成三份
width,height:想要拉伸的尺寸
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"安卓将图片分割或者拉伸或者旋转到指定尺寸并保存到本地":http://eshow365.cn/6-12825-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: Lua学习笔记:词法分析
- 下一篇: SMT加工后包装检验时应该注意什么