Как потянуть и масштабировать битовый массив на холсте с помощью бикубической интерполяции в Android?

Я хочу потянуть битовый массив на холсте с большим размером, чем это. Я могу использовать canvas.drawBitmap (битовый массив, пустой указатель, destRect, пустой указатель); но это дает низкое качество, поскольку результат пикселизирован, если исходное изображение красивое меньший, чем целевой прямоугольник.

Как я могу потянуть свой битовый массив, использующий билинейный или передискретизация bicubic?

Любая справка ценилась бы, спасибо.

17
задан 25 March 2010 в 17:00
поделиться

1 ответ

Вам необходимо установить флаг FILTER_BITMAP_FLAG в краске.

canvas.drawBitmap(bitmap, matrix, null); //ugly jaggies unless scale is 1:1, but fast

или

Paint paint = new Paint();
paint.setFilterBitmap();
canvas.drawBitmap(bitmap, matrix, paint); // pretty but slower (not too slow, usually)

То же самое применимо к другим (синтаксическим сахарам) формам метода drawBitmap .

Нигде нет документации по большинству параметров рисования Android, равно как и документации по базовой собственной библиотеке Skia, которая выполняет рендеринг. Я был бы счастливее, если бы они были. Вы можете выполнить поиск в исходном коде Skia в Google Code Search. Найдите Skia и покопайтесь в исходном коде; это единственная документация.

35
ответ дан 30 November 2019 в 12:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: