Java Android-如何从一个大位图创建小位图?
我有大位图(720x6000),我需要用它制作6个小位图(每个720x1000)。我怎么能做到?请在答案中添加一些代码Java Android-如何从一个大位图创建小位图?,java,android,bitmap,Java,Android,Bitmap,我有大位图(720x6000),我需要用它制作6个小位图(每个720x1000)。我怎么能做到?请在答案中添加一些代码 请原谅我的英语。最简单的解决方案是使用静态方法Bitmap.createBitmap(位图源,int x,int y,int width,int height)witch创建一个新的不可变位图(不可变位图无法修改。尝试修改一个位图将引发异常)来自“源”位图的指定子集。如果较小的位图必须是可变的,则可以通过调用bitmap.copy(bitmap.Config,boolean i
请原谅我的英语。最简单的解决方案是使用静态方法
Bitmap.createBitmap(位图源,int x,int y,int width,int height)
witch创建一个新的不可变位图(不可变位图无法修改。尝试修改一个位图将引发异常)来自“源”位图的指定子集。如果较小的位图必须是可变的,则可以通过调用bitmap.copy(bitmap.Config,boolean isMutable)
将bitmap.createBitmap()
返回的不可变位图转换为可变位图
另一种解决方案是创建空的小位图,并使用
画布
在较小的位图上绘制大位图的一部分。您最好缩放该位图,否则内存会很快用完。
Bitmap bigBitmap = ...;
Bitmap smallBitmap1 = Bitmap.createBitmap(bigBitmap, 0, 0, 720, 1000);
Bitmap smallBitmap2 = Bitmap.createBitmap(bigBitmap, 0, 1000, 720, 1000);
Bitmap smallBitmap3 = Bitmap.createBitmap(bigBitmap, 0, 2000, 720, 1000);
...
// to make small bitmaps mutable
smallBitmap1 = smallBitmap1.copy(Bitmap.Config.ARGB_8888, true);
smallBitmap2 = smallBitmap2.copy(Bitmap.Config.ARGB_8888, true);
...