android显示矩阵大小,关于android:显示代表灰度图像的双值矩阵

作者分享了解决在Android中将字节数组转换为灰度图像,并选择最佳格式(RGB_565)以减少内存消耗的问题。通过Bitmap.Config.RGB_565选项调整图片加载方式,确保图像清晰且内存效率高。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我的问题是:我有一个字节数组,必须与ImageView一起显示。 这是我的代码:

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

ImageView imageView = (ImageView)findViewById(R.id.show_image);

byte[] arrayBytes = ...; // It's initialized

BitmapFactory.Options options = new BitmapFactory.Options();

options.inSample = 4;

imageView.setImageBitmap(BitmapFactory.decodeByteArray(arrayBytes,0,arrayBytes.length,options));

}

字节数组中存储的每个字节都是double [] []的元素,但采用字节格式。 Android默认情况下使用ARGB_8888格式。

我不知道哪种是显示灰度矩阵的最佳格式。

有什么建议吗?

//编辑

此代码中的问题是无法显示图像。 我认为我所做的转换是错误的:

byte[] byteArray = new byte[SIZE];

int k = 0;

for(...i) {

for(...j) {

byteArray[k] = Double.valueOf(matrix[i][j]).byteValue();

k++;

}

}

var matrix是double [] [],它代表灰度图像。 使用Double类的byteValue方法将每个像素转换为字节。

我认为这是错误的,因为我使用的格式(ARGB_8888或RGB_565)每个像素需要一个以上的字节。

所以,我不知道如何改变它

如果要显示的图像数量最少,则可以使用ARGB_8888继续

增强图像清晰度和色彩

此处每个像素存储在4个字节上。

如果要使用更多数量的图像,请使用RGB_565

此处,每个像素存储在2个字节上,仅RGB通道被编码。

任何您想要的灰度图像,都可以使用RGB_565,它消耗更少的RAM。

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

ImageView imageView = (ImageView)findViewById(R.id.show_image);

byte[] arrayBytes = ...; // It's initialized

BitmapFactory.Options options = new BitmapFactory.Options();

options.inSample = 4;

// Add this line in your code

options.inPreferredConfig = Bitmap.Config.RGB_565;

imageView.setImageBitmap(BitmapFactory.decodeByteArray(arrayBytes,0,arrayBytes.length,options));

}

香港专业教育学院只是添加新的评论。 感谢您的回答。 您对公羊说的有趣

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值