public final BufferedImage filter(BufferedImage src, BufferedImage dst)
Как выполнить аналогичную операцию, как AffineTransformOp.filter на Android?
Превращает источник
BufferedImage
и сохраняет результаты в пункте назначенияBufferedImage
.
Если цветные модели для двух изображений не совпадают, выполняется преобразование цвета в целевую цветовую модель. Если целевое изображение -null
, создаетсяBufferedImage
с источникомColorModel
. Координаты прямоугольника, возвращаемогоgetBounds2D(BufferedImage)
, не обязательно совпадают с координатамиBufferedImage
, возвращаемыми этим методом. Если координаты верхнего левого угла прямоугольника отрицательны, то эта часть прямоугольника не нарисована. Если верхние левые угловые координаты прямоугольника положительны, то отфильтрованное изображение равно
, нарисованное в этом положении в пункте назначенияBufferedImage
.
я имел следующий код на Java 1.6:
//Make image always std_height tall
double scaleAmount = (double) std_height/(double) characterImage.getHeight();
AffineTransform tx = new AffineTransform();
tx.scale(scaleAmount, scaleAmount);
AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR);
characterImage = op.filter(characterImage, null);
В Android, я использую матрицу вместо AffineTransform:
//Make image always std_width wide
float scaleAmount = (float) std_width/(float) characterImage.getWidth();
//AffineTransform tx = new AffineTransform();
//tx.scale(scaleAmount, scaleAmount);
Matrix mx = new Matrix();
mx.setScale(scaleAmount, scaleAmount);
//AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR); //Can't use this on Android
//characterImage = op.filter(characterImage, null); //Can't use this on Android
Моя проблема с последним два прокомментированные строки. Могу ли я сделать что-то подобное на Android? Благодарю.