Java - мне нужен очень быстрый алгоритм масштабирования изображения - PullRequest
9 голосов
/ 23 ноября 2011

Я работаю над приложением Midlet. Я чувствую необходимость очень часто масштабировать изображения. Это стало проблемой, потому что некоторые телефоны работают довольно медленно, а масштабирование занимает слишком много времени.

В настоящее время я использую Image.createRGBImage (int, int, int, boolean) для масштабирования изображения.

Мне было интересно, знал ли кто-нибудь из вас об очень эффективном и быстром способе масштабирования изображения.

Примечание: это приложение Midlet, поэтому доступен только JavaME, то есть у меня нет доступа к некоторым другим библиотекам, доступным в полной версии Java.

Примечание 2: большая часть моего масштабирования выполняется от маленьких до больших изображений, хотя я также уменьшаю изображение.

1 Ответ

34 голосов
/ 03 декабря 2011

Имейте в виду, что всегда существует связь между скоростью и качеством изображения при обсуждении алгоритмов масштабирования, и для идеального решения для вашего случая могут потребоваться некоторые исследования и тестирование.

Ближайший сосед является самой простой и быстрой реализацией масштабирования изображения.

Есть хорошее введение в масштабирование / изменение размера изображения Coding Horror , в котором рассматриваются несколько методов и сравнивается их качество.

Я предполагаю, что вы работаете с очень маленьким устройством отображения, поэтому качество изображения в конечном итоге не имеет значения. Некоторые люди называют это самой быстрой реализацией масштабирования изображения для J2ME .

Но если вы хотите прочитать что-то еще, в этой статье представлен недорогой (что означает "очень быстрый") алгоритм масштабирования, который значительно улучшает интерполяцию ближайших соседей. Доступен исходный код, и они также представляют эволюцию этого исследования здесь .

Наконец, но не в последнюю очередь, cvResize() от OpenCV (кроссплатформенная библиотека с открытым исходным кодом для обработки изображений). Люди в ивовом гараже довольно хороши в создании быстрых процедур для обработки изображений / видео, и эта функция предоставляет несколько методов для масштабирования, поэтому, возможно, стоит проверить ее реализацию.

...