如何将字节数组转换为位图图像?
How to convert Byte array into bitmap image?
我在这里附加了将位图转换为字节数组的代码,现在我必须重新生成位图才能在 android 图像视图中显示。
在下面的代码中,mRawBitmapData 是 byte Araay。这里的代码是为转换后的图像创建字节数组,所以现在我必须从这个字节数组重新生成位图。
private void convertArgbToGrayscale(Bitmap bmpOriginal, int width, int height){
int pixel;
int k = 0;
int B=0,G=0,R=0;
try{
for(int x = 0; x < height; x++) {
for(int y = 0; y < width; y++, k++) {
pixel = bmpOriginal.getPixel(y, x);
if(pixel == -1){
mDataArray[k] = 1;
}
else {
mDataArray[k] = 0;
}
}
if(mDataWidth>width){
for(int p=width;p<mDataWidth;p++,k++){
mDataArray[k]=0;
}
}
}
}catch (Exception e) {
Log.e(TAG, e.toString());
}
}
private void createRawMonochromeData(){
int length = 0;
for (int i = 0; i < mDataArray.length; i = i + 8) {
int k=0;
for (int j = 7; j >=0; j--, k++) {
if(mDataArray[i+k]==1)
{
mRawBitmapData[length] |= 1 << j;
}
else
{
mRawBitmapData[length] &= ~(1 << j);
}
}
length++;
}
}
使用 Android 的 BitmapFactory 从字节数组中获取位图,如:
Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapdata , 0, bitmapdata.length);
byte[] bitmapdata; // let this be your byte array
Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapdata , 0, bitmapdata .length);
我在这里附加了将位图转换为字节数组的代码,现在我必须重新生成位图才能在 android 图像视图中显示。
在下面的代码中,mRawBitmapData 是 byte Araay。这里的代码是为转换后的图像创建字节数组,所以现在我必须从这个字节数组重新生成位图。
private void convertArgbToGrayscale(Bitmap bmpOriginal, int width, int height){
int pixel;
int k = 0;
int B=0,G=0,R=0;
try{
for(int x = 0; x < height; x++) {
for(int y = 0; y < width; y++, k++) {
pixel = bmpOriginal.getPixel(y, x);
if(pixel == -1){
mDataArray[k] = 1;
}
else {
mDataArray[k] = 0;
}
}
if(mDataWidth>width){
for(int p=width;p<mDataWidth;p++,k++){
mDataArray[k]=0;
}
}
}
}catch (Exception e) {
Log.e(TAG, e.toString());
}
}
private void createRawMonochromeData(){
int length = 0;
for (int i = 0; i < mDataArray.length; i = i + 8) {
int k=0;
for (int j = 7; j >=0; j--, k++) {
if(mDataArray[i+k]==1)
{
mRawBitmapData[length] |= 1 << j;
}
else
{
mRawBitmapData[length] &= ~(1 << j);
}
}
length++;
}
}
使用 Android 的 BitmapFactory 从字节数组中获取位图,如:
Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapdata , 0, bitmapdata.length);
byte[] bitmapdata; // let this be your byte array
Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapdata , 0, bitmapdata .length);