Кажущаяся простой проблема, у меня есть закадровое растровое изображение, в которое я выполняю некоторые преобразования (вращение, масштабирование и т. Д.), И я хотел бы сохранить копию растрового изображения до преобразований, например, в моем представлении onDraw()
, я могу отобразить преобразованный закадровый рисунок и уменьшенную масштабированную версию не преобразованного растрового изображения в виде эскиза.
Нет проблем с записью закадрового растрового изображения в onDraw()
, но скопированное «сохраненное» растровое изображение также преобразуется. Вот код, где я делаю копию растрового изображения, где mCanvas был создан с помощью mCanvas = new Canvas(mBitmap);
:
mPreservedBitmap = Bitmap.createBitmap(mBitmap);
// save the canvas
mCanvas.save();
// do some rotations, scaling
mCanvas.rotate(rotation, px, py);
mCanvas.scale(scaleFactor, scaleFactor, scaleFocusX, scaleFocusY);
// draw the bitmaps to the screen
invalidate();
// restore the bitmap
mCanvas.restore();
В onDraw()
, у меня есть:
// draw the off-screen bitmap to the on-screen bitmap
canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
// draw the preserved image, scaling it to a thumbnail first
canvas.drawBitmap(
Bitmap.createScaledBitmap(mPreservedBitmap, (int) thumbWidth, (int) thumbHeight, true),
null,
thumbnailRectF,
thumbCanvasPaint);
Миниатюра масштабируется до соответствующего размера, но растровое изображение, которое уменьшается до размера миниатюры, также поворачивается и масштабируется точно так же, как mBitmap, чего я не хочу. Я также попробовал метод Bitmap.copy (), но с теми же результатами. Любые указатели / помощь / совет?
Спасибо
Пол