Android 在2.2中将RGB图像转换为位图错误
将RGB图像转换为位图Android 在2.2中将RGB图像转换为位图错误,android,Android,将RGB图像转换为位图 public static Bitmap rgbToBitmap(int[] rgb, int width, int height) { if (rgb == null) throw new NullPointerException(); Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565); bitmap.setPixels(rgb, 0, width
public static Bitmap rgbToBitmap(int[] rgb, int width, int height) {
if (rgb == null) throw new NullPointerException();
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
bitmap.setPixels(rgb, 0, width, 0, 0, width, height);
return bitmap;
}
试着这样做:
编辑:
您可以使用以下方法解决内存不足问题
:
希望它能帮助你 尝试使用Bitmap.createScaledBitmap()和设备的宽度和高度图像超载了内存预算谢谢。它没有解决。它在Htc wildfire 2.2.1中抛出“1327124字节分配内存不足”错误,感谢您的重播。但是我怎样才能在上面使用(位图rgbToBitmap)函数。
Bitmap bmp = Bitmap.createBitmap(frameWidth, frameHeight, Bitmap.Config.ARGB_8888);
public static Bitmap shrinkBitmap(String p_file, int p_width, int p_height)
{
BitmapFactory.Options m_bmpFactoryOptions = new BitmapFactory.Options();
m_bmpFactoryOptions.inJustDecodeBounds = true;
Bitmap m_bitmap = BitmapFactory.decodeFile(p_file, m_bmpFactoryOptions);
int m_heightRatio =
(int) Math.ceil(m_bmpFactoryOptions.outHeight / (float) p_height);
int m_widthRatio =
(int) Math.ceil(m_bmpFactoryOptions.outWidth / (float) p_width);
if (m_heightRatio > 1 || m_widthRatio > 1)
{
if (m_heightRatio > m_widthRatio)
{
m_bmpFactoryOptions.inSampleSize = m_heightRatio;
}
else
{
m_bmpFactoryOptions.inSampleSize = m_widthRatio;
}
}
m_bmpFactoryOptions.inJustDecodeBounds = false;
m_bitmap = BitmapFactory.decodeFile(p_file, m_bmpFactoryOptions);
return m_bitmap;
}