Скажем, я начинаю с Bitmap, что это 1000px х 1000pxЕсть ли способ перевести матрицу в альтернативный масштаб?
я загрузить его в SurfaceView
Canvas
жителя, который отображается в некоторых произвольных (и в зависимости от устройства различных размеров).
Я могу получить эти измерения во время выполнения и измерить масштаб между ними и оригиналом (если мне нужна эта информация в конце).
Затем я разрешаю пользователю зажимать/масштабировать/переводить изображение вокруг отображаемого холста. Все время у меня есть Matrix
, который отслеживает и используется для повторного рисования изображения в отображаемой области экрана.
Впоследствии эти значения Matrix
применяются к масштабированному пространству (а не оригинальному графику 1000x1000).
Пока все хорошо - у меня все это работает.
Однако, когда все сказано и сделано, я хотел бы применить эту матрицу к исходному растровому изображению и сохранить его. Однако я не понимаю, как изменить все свои внутренние значения, чтобы применить его к размеру безмасштабированного оригинала (1000x1000).
Любопытный, если есть какой-то автомагический способ их перевести, или если мне нужно каким-то образом применить каждое значение на основе шкалы между двумя размерами обратно к новой матрице.
Ортогональных на ваш вопрос, но, возможно, использование: http://android-developers.blogspot.com/2013/09/using-hardware-scaler-for-performance.html – fadden
я предполагаю, что вы используете ' Canvas # drawBitmap (Bitmap, Matrix, Paint) 'для рисования на вашем SurfaceView', затем используйте тот же метод при рисовании временного« Bitmap », а затем сохраните его – pskink
@pskink, я, но вы видите - это приведет к во всех значениях неверно! Предположим, что пользователь переместил изображение 50px вправо (на экране) - это переводит на некоторое количество положительного движения по оси X в том, что будет последним, потому что 50 пикселей экрана имеют некоторую долю (большую или меньшую), чем фактический битмап. Поэтому мне нужно повторно передать всю матрицу обратно в исходные размеры (сохраняя измененные пользователем изменения) –