Как я могу получить ColdFusion для масштабирования изображений любого типа? - PullRequest
2 голосов
/ 08 февраля 2012

Конфигурация сервера:

  • Windows Server 2003
  • IIS 6
  • ColdFusion 8 Standard Edition
  • Обновление Java версии 6 18

У меня есть приложение ColdFusion, которое позволяет пользователям загружать изображения, которые будутдобавлен в существующий PDF.Когда изображения добавляются в PDF, они должны соответствовать минимальной / максимальной высоте и ширине, поэтому загружаемое изображение необходимо масштабировать для соответствия.

Например, допустим, минимальная высота и ширина дляданное изображение имеет размер 100x100, максимальная высота и ширина составляет 200x200, и пользователь загружает изображение размером 500x1000.Я использую приведенную ниже логику, чтобы уменьшить это изображение без перекоса изображения (оно сохраняет свою первоначальную форму) до 100x200.Если изображение меньше минимального, оно масштабируется (в приведенном выше примере изображение 50x50 будет масштабировано до 100x100).

К сожалению, у меня много проблем с загрузкой пользователями "недействительные изображения ".Я знаю, что у ColdFusion есть проблемы с работой с прогрессивными JPEG и CMYK JPEG, но даже некоторые TIFF выдают ошибки.Кроме того, 3-мегабайтное изображение в формате TIFF занимает больше минуты (не говоря уже о потере разрешения, которое я отправил отдельным вопросом здесь .)

Я добавиллогика не позволяет ColdFusion пытаться обработать «недопустимое изображение» с помощью функции IsImageFile(), но пользователи очень разочарованы тем, что у них есть изображение, которое они могут открыть и просмотреть на своем ПК, но мы не можем принять его.У печатных компаний онлайн (например, Shutterfly, Kodak и т. Д.) Есть эти проблемы?Я не могу вспомнить, чтобы когда-либо возникала проблема на этих веб-сайтах (хотя я знаю, что они не обязательно используют ColdFusion).

Любые мысли о том, что я могу сделать, чтобы разрешить использовать больше типов изображений (Progressive, CMYKи т. д.) и улучшить производительность?

1 Ответ

3 голосов
/ 08 февраля 2012

Вам, вероятно, придется использовать решение без CF, как мы делали до CF8. Некоторые библиотеки, упомянутые здесь: https://stackoverflow.com/questions/158756/what-is-the-best-image-manipulation-library

Время масштабирования сильно зависит от выбранного вами алгоритма. Добавление изображений в PDF-файлы в ColdFusion в лучшем случае непредсказуемо. Я обнаружил, что они часто раздуваются, резко увеличивая размер файла PDF.

Вот некоторая информация из документов: http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=functions_in-k_16.html

Поддерживаемые форматы файлов изображений

Тег cfimage работает с различными форматами файлов. Чтобы получить список поддерживаемых форматов на сервере, на котором развернуто приложение ColdFusion, используйте функцию GetReadableImageFormats и функцию GetWriteableImageFormats.

ColdFusion поддерживает следующие форматы изображений по умолчанию в операционных системах Macintosh, Windows и Unix:

JPEG

GIF

TIFF

PNG

BMP

ColdFusion не поддерживает следующие форматы изображений:

Анимированный GIF

Многостраничный TIFF

PSD

AI

Поддержка CMYK

Тег cfimage поддерживает чтение и запись изображений CMYK, но не поддерживает действия, требующие преобразования изображений. Например, вы можете использовать изображения CMYK с действиями read, write, writeToBrowser, resize, rotate и info. Вы не можете использовать изображения CMYK с действиями преобразования, капчи и границы. То же правило применяется к функциям изображения. Например, функции ImageNew, ImageRead и ImageWrite поддерживают изображения CMYK, а функция ImageAddBorder - нет.

...