gpt4 book ai didi

java - Android:从包含 ARGB 值的二维整数数组中获取位图

转载 作者:行者123 更新时间:2023-11-29 20:47:59 26 4
gpt4 key购买 nike

目前我有一个二维整数数组,其中包含图像的 ARGB 值。现在我想获得一个具有这些值的位图以将其显示在屏幕上。

位图也应该缩放,例如图像是 80x80 或 133x145,但我只希望它是 50x50。类似这样的东西,但由于它是 Android,所以 Java 类不可用:

    private static BufferedImage scale(BufferedImage image, int width, int height) {
java.awt.Image temp = image.getScaledInstance(width, height, java.awt.Image.SCALE_SMOOTH);
BufferedImage imageOut = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D bGr = imageOut.createGraphics();
bGr.drawImage(temp, 0, 0, null);
bGr.dispose();
return imageOut;
}

我已经搜索了 API 和 Stack Overflow,但我找不到任何提示、类或方法如何这样做。

最佳答案

首先创建一个代表原始大小图像(80x80 或 133x145)的 Bitmap 对象。你可以这样做:

Bitmap.Config bitmapConfig = Bitmap.Config.ARGB_8888;
Bitmap bitmap = Bitmap.createBitmap(width, height, bitmapConfig);

其中 width 是源宽度(80 或 133),height 是源高度(80 或 145)。

然后用您数组中的颜色填充此位图。我不知道你的数组构建的确切方式和它存储的数据类型,所以为了这个简单的概念解释,我假设它只是一个常规的一维数组,存储 ARGB 十六进制 String 值。请务必更正 for 循环以匹配您的确切情况:

int[] bitmapPixels = new int[width * height];
for (int i = 0, size = bitmapPixels.length; i < size; ++i) {
bitmapPixels[i] = Color.parseColor(argbArray[i]);
}
bitmap.setPixels(bitmapPixels, 0, width, 0, 0, width, height);

然后创建一个缩放的Bitmap,并回收你之前创建的原始大小的Bitmap

Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, 50, 50, false);
bitmap.recycle();

关于java - Android:从包含 ARGB 值的二维整数数组中获取位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29914535/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com