обрезать изображение, используя размеры прямоугольника - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь обрезать GIF-анимацию, для этого я начал обрезку каждого растрового изображения GIF, после обрезки растровых изображений я сохраню их в ArrayList, но у меня возникла проблема с размерами при обрезке изображения

enter image description here

что я получу:

enter image description here

Rect rect = ((GIFCropper) findViewById(R.id.CropView)).getCropRect();
                final String srcPath = path;
                desPath = getDesPath(srcPath, cropIndex);
                GifDecoder gifDecoder = new GifDecoder();
                boolean isSucceeded = gifDecoder.load(path);
                if (isSucceeded) {
                    for (int i = 0; i < gifDecoder.frameNum(); ++i) {
                        croppedBmp = Bitmap.createBitmap(gifDecoder.frame(i), rect.centerY(), rect.centerX(), rect.width(), rect.height());
                        bitmapArrayList.add(croppedBmp);
                    }

                }

1 Ответ

0 голосов
/ 18 сентября 2018

Сначала необходимо убедиться, что область просмотра держателя обрезки правильно отображается в размере растрового изображения

Затем измените это:

Bitmap.createBitmap (gifDecoder.frame (i), прямоугольник. centerY () , прямоугольник. centerX () , rect.width (), rect.height ()) ;

к этому:

Bitmap.createBitmap (gifDecoder.frame (i), rect. left , rect. top , rect.width (), rect.height ());

...