나는 큰 비트 맵 (720x6000)을 가지고 있으며, 6 개의 작은 비트 맵 (각각 720x1000)을 만들어야한다. 내가 어떻게 할 수 있니? 당신의 대답에 약간의 코드를 추가하십시오.안드로이드 - 하나의 큰 비트 맵에서 작은 비트 맵을 만드는 방법?
영어로 실례합니다.
나는 큰 비트 맵 (720x6000)을 가지고 있으며, 6 개의 작은 비트 맵 (각각 720x1000)을 만들어야한다. 내가 어떻게 할 수 있니? 당신의 대답에 약간의 코드를 추가하십시오.안드로이드 - 하나의 큰 비트 맵에서 작은 비트 맵을 만드는 방법?
영어로 실례합니다.
가장 간단한 솔루션은 정적 메서드 Bitmap.createBitmap (Bitmap source, int x, int y, int width, int height)
을 사용하여 마녀가 '소스'비트 맵의 지정된 하위 세트에서 새로운 불변 비트 맵을 생성합니다 (변경 불가능한 비트 맵은 수정할 수 없습니다. 수정을 시도하면 예외가 발생합니다). 더 작은 비트 맵을 변경할 수 있으면 Bitmap.createBitmap()
에 의해 반환 된 불변의 비트 맵을 Bitmap.copy(Bitmap.Config config, boolean isMutable)
을 호출하여 변경 가능한 비트 맵으로 변환 할 수 있습니다.
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);
...
또 다른 해결책은 빈 작은 비트 맵을 생성하고 Canvas
를 사용하여 작은 것들에 큰 하나의 부분을 그리기 될 것입니다.
비트 맵의 크기를 조정하는 것이 좋거나 메모리가 부족할 정도로 빠르게 실행됩니다. – Simon