У меня проблемы с toBase64 () некоторое время.Я надеюсь, что кто-то может сказать мне, почему CF toBase64 (), кажется, что-то потерял, т.е. в моем примере это снижает качество изображения.
У меня есть решение (см. Последний пример кода ниже), но я не ненавижу неПонимание, почему и я бы хотел решить эту проблему, - это CF.
Если кто-то будет так любезен выполнить приведенный ниже код, вы увидите, что после преобразования в toBase64 качество изображения плохое.Ничего особенного, но после кодировки это выглядит не так хорошо.Если вы никогда не заметили, то попробуйте, вы поймете, что я имею в виду.
Кто-нибудь знает почему или как решить эту проблему в CF?
<!--- EXAMPLE 1 --->
<!--- GET IMAGE - --->
<cfset image = ImageNew("test.png")>
<!--- BEFORE GOOD--->
<cfimage action="writeToBrowser" source="#image#" >
<cfset image = toBinary(toBase64(image)) />
<!--- AFTER --->
<cfimage action="writeToBrowser" source="#image#" >
<!--- Example 2 --->
<cfset image = ImageNew("test.png")>
<cfset FileWrite(expandPath('./converted.image'),toBinary(toBase64(image))) />
<!--- without any cfimage processing, the outputted file is a JPEG --->
Мое решение состояло в том, чтобы использовать надстройку java, и все казалось нормальным, но по причинам, которые я не буду вдаваться в подробности, я не смогу сделать здесь что-то, что я могу сделать вживую.
image = createObject("java","it.sauronsoftware.base64.Base64").encode(image);
toBinary(image );
Пример вывода изображенияприведенный выше код можно найти здесь: http://i56.tinypic.com/29fwiq.png Во-первых, перед тем, как toBase64, через секунду, вы можете увидеть, что изображение немного потеряло качество после функции toBase64 на втором выходе.
Обновление: Как указывает Питер, проблема, похоже, связана с кодом автоматического вывода / преобразования в ImageObject, который обеспечивает двоичный вывод для функции toBase64 для кодирования.
Обновление Я представил это как ошибку в CF 9.0.1, пожалуйста, проголосуйте за ошибку 3177303 https://bugbase.adobe.com/index.cfm?event=bug&id=3177303