Android - 将 ImageView 保存到具有全分辨率图像的文件

Posted

技术标签:

【中文标题】Android - 将 ImageView 保存到具有全分辨率图像的文件【英文标题】:Android - Save ImageView to file with full resolution image 【发布时间】:2011-12-27 10:44:38 【问题描述】:

我将图像放在 ImageView 中,并实现了多点触控来调整图像大小和在 ImageView 中移动图像。现在我需要将调整大小的图像保存到图像文件中。我已经尝试过 .getDrawingCache() 但该图像具有 ImageView 的大小。我希望图像显示 ImageView 显示的内容,但具有全分辨率(大于 ImageView)。

有什么想法吗?

【问题讨论】:

【参考方案1】:

您可以在后台保存一个位图对象,您可以使用以下代码调整其大小:

Matrix matrix = new Matrix();
matrix.postScale(scaledWidth, scaledHeight);

Bitmap resizedBitmap = Bitmap.createBitmap(originalBitmap, 0, 0,
    originalBitmap.width(), originalBitmap.height(), matrix, true); 

稍后使用此代码保存:

OutputStream fOut = null;
File file = new File(strDirectoy,imgname);
fOut = new FileOutputStream(file);

resizedBitmap.compress(Bitmap.CompressFormat.PNG, 0, fOut);
fOut.flush();
fOut.close();

【讨论】:

【参考方案2】:

我的解决方案是使用我用于 ImageView 的矩阵来获取翻译,并且我还拥有该图像的比例。使用这两个我裁剪了原始图像。

Bitmap resizedBitmap = Bitmap.createBitmap(
                        BitmapFrontCover, (int) UpperLeftCornerX,
                        (int) UpperLeftCornerY, (int) CropWidth,
                        (int) CropHeight);

【讨论】:

以上是关于Android - 将 ImageView 保存到具有全分辨率图像的文件的主要内容,如果未能解决你的问题,请参考以下文章

保存 Android ImageView 位图

在 ImageView 中显示图像并将其保存到 Android 上的内部存储中

无法将图像从ImageView上传到Android中的FireBase存储

android如何将捕获的图像保存到手机库中

android设备重启时ImageView不保留图像

在 Android 中保存多个图像