关于Android开发过程中,createImage的一些总结。

今天在Android开发过程中,在改原来在WTK上写过的底层方法,发现Android里面createImage(Android里面叫createBitmap)创建的时候无法像WTK里面一样直接创建ARGB数组

 

WTK方法如下

 

createRGBImage(int[] rgb, int width, int height, boolean processAlpha) //Creates an immutable image from a sequence of ARGB values, specified as 0xAARRGGBB.

 

而Android的BitmapFactory倒是有一个

decodeByteArray(byte[] data, int offset, int length, BitmapFactory.Options opts) //Decode an immutable bitmap from the specified byte array.

 

单这一方式,经过我一上午的试验,发现只能创建相应压缩格式的图片,比如PNG,JPEG等,于是决定跟踪写一个接口。

 

流程大概是这样的。

 

1.先创建一张,指定大小的空图

2.之后通过setPixels将相应的数组贴进去,setPixels的第一个参数刚好是个int型,表示ARGB的数值。

 

于是就解决啦。

 

在实际的调试过程中,我下断点跟踪Bitmap相关变量,发现里面有个参数mHeight和mWidth一直为-1,我以为图片没有创建出来,其实并不是,在内部他已经创建出来了,只需再次调用bm.getHeight()这个值就出来啦。

 

更正,Android里面本身带类似于WTK22里面的API,只是当时我调试时未知原因导致崩溃,所以没调出来。

static Bitmap createBitmap(int[] colors, int offset, int stride, int width, int height, Bitmap.Config config) Returns a immutable bitmap with the specified width and height, with each pixel value set to the corresponding value in the colors array.

此方法即可

 

 

 

 

 

你可能感兴趣的:(关于Android开发过程中,createImage的一些总结。)