Воспользуйтесь PNG-сжатием Flash CS4, но как внешним файлом? - PullRequest
1 голос
/ 19 мая 2010

Вот проблема: я занимаюсь разработкой некоторых Flash-сайтов и действительно наслаждаюсь AS3.

Проблема: PNG 24-битные изображения слишком велики ... У меня есть три PNG-изображения с прозрачностью, которые я хотел бы поворачивать на "Домашней странице" каждые 10 секунд или около того. Отлично. Нет проблем - но вместо того, чтобы встраивать все три PNG-файла в SWF-файл, для загрузки которого потребуется больше времени, я бы хотел загружать их динамически из внешних файлов, чтобы пользователю не приходилось ждать загрузки изображений. которые не будут отображаться в течение еще 10-15 секунд в любом случае. Это нормально ... У меня есть рабочий код для этого.

Реальная проблема: Эти размеры PNG, даже загруженные из внешних файлов на лету, действительно меня беспокоят. Одно изображение 350 КБ при сохранении в Photoshop - 300 КБ при использовании PNGOUT . Но ... когда я импортирую PNG в библиотеку Flash, я могу зайти и установить для него JPG / сжатие изображения, которое уменьшает размер примерно до 45 Кб, но сохраняет альфа-информацию !! Если Flash может так сильно сжать мой PNG и при этом выглядел хорошо, почему я не могу найти приложение, которое может сделать то же самое для внешнего файла? Я бы с удовольствием загрузил мои изображения в библиотеку Flash и позволил ей справиться со сжатием, но если я получу 5 или 6 изображений, это все равно окажется слишком долгим временем загрузки.

Резюме: Как я могу сжать мое изображение PNG размером 350 КБ с прозрачностью до 45 КБ, как это делает Flash при импорте в библиотеку?

Возможное решение: Или .... хмммм ... это может быть обходной путь ... возможно, я мог бы просто сделать отдельный SWF-фильм для каждого PNG, который я хочу использовать, который использует Flash сжатое изображение - затем прочитайте этот файл динамически, используя Loader ... Это должно работать! Я вернусь и сообщу ...

Но, тем не менее, как Flash сжимает эти PNG-файлы намного сильнее, чем компрессоры типа PNGOUT? Может быть, я просто не передаю правильные параметры, чтобы они были эффективными.

Спасибо, что прочитали мои разговоры. Вы все - отличная декорация!

Ответы [ 3 ]

0 голосов
/ 10 июля 2010

Раньше у меня был тот же вопрос, но позже, я думаю, flash использовал сжатие JPEG для файлов PNG. Сжатый JPEG "png" на самом деле является вариантом, который не поддерживает стандартный формат png, но поддерживает flash. В своем собственном флеш-проекте я его очень много использовал. Я даже использовал swftools для создания анимированного SWF-файла из большого количества png, поэтому я могу загрузить один SWF-файл «png gallery» и использовать все png внутри.

0 голосов
/ 09 октября 2011

Я знаю, что этому вопросу год, но я подумал, что это будет хорошо для дальнейшего использования. Использование любого из инструментов сжатия png (PngCrush, Optipng) не даст почти таких же результатов, как сжатие Flash.

Лучший способ использовать сжатие флэш-памяти без создания каждого SWF-файла во Flash IDE - это использовать утилиту SwfTools png2swf, которая сохранит альфа-каналы, а также позволит вам установить качество сжатия JPEG.

http://www.swftools.org/png2swf.html

0 голосов
/ 20 мая 2010

PNG-сжатие без потерь, поэтому оно не может конкурировать со схемами сжатия с восприятием с потерями, как JPEG. Просто убедитесь, что ваш png соответствует размеру, который нужно отобразить (или нет: одна из тривиальных схем «сжатия» - сохранить уменьшенное изображение и увеличить его при отображении, но обычно это неудовлетворительно). Если вы не можете перейти ниже 24 бит (вы не можете перейти на 256-паллетный, я догадываюсь), я не думаю, что многое можно сделать. Я могу только предложить взглянуть на PngCrush .

...