Ранее в статье про различные форматы графических изображений мы рассматривали BMP, JPEG, TIFF, GIF. Осталось обсудить последний самый распространенный формат - PNG. В настоящее время Portable Network Graphics (PNG) - один из самых известных и чаще всего применяемых форматов файла.
Почему же так вышло, что именно такой формат пользуется популярностью в мире? Всё просто. Широкий спектр цветов, гамма-коррекция, сохранение как с фоном, так и без него. Удобств действительно много, ведь PNG имеет способность сохранять информацию и не терять качество изображения. Чаще всего используется для просмотра, сжатия картинок и редактирования/создания графики.
PNG может открываться практически всеми возможными программами, поэтому в 1996 году PNG стал отличной альтернативой формату GIF (Graphics Interchange Format) и в некоторой степени, заменой значительно более сложного формата TIFF (Tagged Image File Format).
Изначально он имел название PBF (Portable Bitmap Format), но после улучшений спецификация была рассмотрена консорциумом W3C и одобрена в качестве оптимального сетевого формата.
PNG поддерживает три типа растровых изображений:
- полутоновое изображение (глубина цвета 16 бит);
- цветное индексированное изображение (глубина цвета 24 бит);
- полноцветное изображение (глубина цвета 48 бит).
Формат имеет много преимуществ по отношению к GIF формату. Приведу несколько примеров.
1) Может хранить графическую информацию в сжатом виде, независимо от того, сколько раз вы пересохранили его или оставили в промежуточном редактировании. Ваша работа гарантированно останется в том же качестве.
2) Позволяет включить в материал метаданные или же сохранить авторскую информацию.
3) PNG имеет совсем небольшой размер изображения.
4) Применяется открытый непатентованный алгоритм сжатия Deflate.
Программные продукты Fast Reports для работы в macOC, Linux и Windows имеют возможность конвертировать, создавать, сохранять и экспортировать изображения такого разрешения. В генераторе отчетов для Delphi можно сохранить документ даже в PNG формате.
Допустим, что вы уже создали свой отчёт и запустили предпросмотр. Выбираем из окна экспортов формат PNG. Появится окно, в котором присутствуют настройки экспорта документа. Например, есть возможность сохранения всех страниц, текущей, на которой вы находитесь, или же указав конкретные страницы.
Подробное описание настроек экспорта в PNG.
Monochrome - изображения в оттенках черного;
Crop pages - обрезка страниц;
JPEG quality - настройка качества графического объекта (будет недоступна из-за особенности формата);
Resolution (dpi) - разрешение в точках на дюйм;
Open after export - автоматическое открытие документа сразу же после сохранения.
Также есть возможность сохранить файл в память компьютера, загрузить в облако, передать по электронной почте или же в FTP.
procedure TForm1.Button1Click(Sender: TObject); begin {Формируем отчёт. Перед экспортом отчёт необходимо обязательно сформировать} frxReport1.PrepareReport(); {Устанавливаем диапазон экспортируемых страниц. По умолчанию экспортируются все страницы сформированного отчёта} frxGIFExport1.PageNumbers := '2-3'; {Устанавливаем, нужно ли экспортировать каждую страницу в отдельный файл.} {К имени файла будет добавлено .N, где N - порядковый номер страницы} frxGIFExport1.SeparateFiles := True; {Устанавливаем, нужно ли экспортировать в чёрно-белое изображение} frxGIFExport1.Monochrome := False; {Устанавливаем, нужно ли обрезать пустые края} frxGIFExport1.CropImages := False; {Устанавливаем разрешение, точек/дюйм} frxGIFExport1.Resolution := 96; {Устанавливаем, нужно ли открывать результирующий файл после экспорта} frxGIFExport1.OpenAfterExport := False; {Устанавливаем, нужно ли отображать прогресс экспорта (показывать, какая страница в данный момент экспортируется)} frxGIFExport1.ShowProgress := False; {Устанавливаем, нужно ли отображать окно диалога с настройками фильтра экспорта} frxGIFExport1.ShowDialog := False; {Устанавливаем имя результирующего файла.} {Обратите внимание на то, что если не установить имя файла и отключить показ диалогового окна фильтра экспорта,} {то всё равно будет отображен диалог выбора имени файла} frxGIFExport1.FileName := 'C:\Output\test.png'; {Экспортируем отчёт} frxReport1.Export(frxPNGExport1); end;
Проведём небольшое сравнение веса итоговых файлов при экспорте отчёта. За основу взяли небольшой отчёт с различными измерительными шкалами.
PNG - 26,7 КБ; BMP - 6,80 МБ; JPEG - 78,0 КБ; TIFF - 2,55 МБ; GIF - 20,9 КБ.
Можно заметить, что при экспорте формат PNG по размеру больше GIF. Так вышло по причине того, что при сохранении в PNG сохранилось изначальное разрешение, а GIF утратил небольшую часть качества.
Следовательно, PNG формат лучше применять при работе с графическими изображениями, а GIF - для анимаций.
Остальные форматы отлично подходят для других целей. Например:
- BMP наиболее эффективно использовать при сохранении только растровых изображений;
- JPEG используется для сохранения фотографий, email-графики и больших изображений, таких как, например, рекламные баннеры;
- TIFF применяется в процессе сканирования, а также распознавания текста. Зачастую, данные файлы формата используют при передаче факсов.
Подведем итоги. Экспортировать любой созданный, открытый или отредактированный объект из FastReport VCL в Portable Network Graphics (PNG) очень просто и удобно. Данный формат отлично подойдёт для множества целей, будь то составление схемы для вышивки или создание чертежей для вытачивания деталей. А в реализации вам уже помогут продукты Fast Reports.