The OpenNET Project
 
Поиск (теги):    НОВОСТИ (+) КОНТЕНТ WIKI MAN'ы ФОРУМ

18.02.2013 21:26  Релиз libpng 1.6.0 с поддержкой упрощённого API

Представлен первый стабильный релиз новой ветки libpng 1.6.0, популярной свободной библиотеки для чтения, сохранения и обработки растровых изображений в формате PNG. Новая ветка примечательна реализацией нового упрощённого API, встроенной поддержкой новых таблиц sRGB-to-linear и linear-to-sRGB, а также прекращением поддержки некоторых функций, ранее объявленных устаревшими.

Из элементов нового API можно отметить макросы PNG_FORMAT_* и PNG_IMAGE_*, структуры png_control и png_image, функции для чтения изображений png_image_begin_read_from_(file|stdio|memory), png_image_finish_read, png_image_free, функции для записи изображений png_image_write_to_file и png_image_write_to_stdio.

Прекращена поддержка вызовов: png_get_io_chunk_name заменён на png_get_io_chunk_type, удалены встроенные макросы png_sizeof(), png_strlen(), png_memcpy(), png_memcmp() и png_memset(). Объявлены устаревшими фунуции png_info_init_3, png_convert_to_rfc1123, png_data_freer, png_malloc_default, png_free_default, png_reset_zstream.

  1. Главная ссылка к новости (http://sourceforge.net/mailarchive/forum...)
Тип: Программы
Ключевые слова: libpng, png, image, (найти похожие документы)
При перепечатке указание ссылки на opennet.ru обязательно
Реклама
Обсуждение Линейный вид (Ajax) | Показать все | RSS
 
  • 1.1, Аноним, 21:41, 18/02/2013 [ответить] [смотреть все]
  • –2 +/
    Надо почитать что за упрощённое API Возможно получится кое-где упростить код в ... весь текст скрыт [показать]
     
     
  • 2.2, paulus, 21:48, 18/02/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    В raring 1 2 49... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.3, Аноним, 21:56, 18/02/2013 [^] [ответить] [смотреть все]  
  • +1 +/
    Класс, это ещё лучше ... весь текст скрыт [показать]
     
  • 1.4, Mihail Zenkov, 22:49, 18/02/2013 [ответить] [смотреть все]  
  • +10 +/
    Меня всегда удивляло, как в библиотеке от которой требуется всего навсего сжимать/разжимать поток данных, можно ломать api чуть ли не с каждым выходом 1.x.0, да еще иногда, так что поправить с ходу это было нелегко.

    Надеюсь с выходом упрощенного API ситуация изменится к лучшему.

     
     
  • 2.7, kurokaze, 00:02, 19/02/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    Попробуте попрограммировать, может тогда поймете I media-libs libpng Avai... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.9, Аноним, 02:27, 19/02/2013 [^] [ответить] [смотреть все]  
  • +/
    А вот и не сделают Для 1 2 есть потому что LSB, а для 1 4 слота нет ... весь текст скрыт [показать]
     
     
  • 4.10, runoverheads, 03:00, 19/02/2013 [^] [ответить] [смотреть все]  
  • +/
    ну значит в пакет 1 6 будет помечен как тестируемый на долгое время... весь текст скрыт [показать]
     
     
  • 5.42, all_glory_to_the_hypnotoad, 23:15, 19/02/2013 [^] [ответить] [смотреть все]  
  • +/
    а потом всё наебнётся после долгого времени В генте с png такое происходит регу... весь текст скрыт [показать]
     
     
  • 6.54, mavriq_, 16:10, 21/02/2013 [^] [ответить] [смотреть все]  
  • +/
    вы хотите сказать - у вас в генте такое происходит регулярно ну так пересядьте ... весь текст скрыт [показать]
     
  • 2.11, Аноним, 04:49, 19/02/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • –2 +/
    Ты путаешь libpng с zlib libpng приходится делать хренову тонну вещей, посмотри... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.15, www2, 06:00, 19/02/2013 [^] [ответить] [смотреть все]  
  • +2 +/
    Не люблю крайностей Должна быть золотая середина и разумный баланс Крайность с... весь текст скрыт [показать]
     
     
  • 4.39, ip1981, 20:42, 19/02/2013 [^] [ответить] [смотреть все]  
  • +3 +/
    Похерил API - меняй soname, блеать ... весь текст скрыт [показать]
     
  • 4.50, Аноним, 00:43, 21/02/2013 [^] [ответить] [смотреть все]  
  • +1 +/
    Оно и есть soname меняется, срок на deprecated даётся более чем достаточный Но... весь текст скрыт [показать]
     
  • 3.28, Mihail Zenkov, 18:19, 19/02/2013 [^] [ответить] [смотреть все]  
  • –1 +/
    Я в своей программе использую extern C png_struct png_create_write_struct im... весь текст скрыт [показать]
     
     
  • 4.32, Аноним, 19:07, 19/02/2013 [^] [ответить] [смотреть все]  
  • +2 +/
    Для таких как вы, видимо, и сделали упрощённый API И да, это нормалньый API, по... весь текст скрыт [показать]
     
     
  • 5.36, Mihail Zenkov, 20:15, 19/02/2013 [^] [ответить] [смотреть все]  
  • +/
    Приведите обычный пример, который применяется чаще хотя бы не реже , чем просто... весь текст скрыт [показать]
     
  • 5.43, ip1981, 23:46, 19/02/2013 [^] [ответить] [смотреть все]  
  • +1 +/
    Разве вы не написали уже свою функцию my_write_png_file ... весь текст скрыт [показать]
     
  • 3.29, Mihail Zenkov, 18:30, 19/02/2013 [^] [ответить] [смотреть все]  
  • +/
    Посмотри как gimp-2 7 переходил на новую версию Я после обновления libpng сам х... весь текст скрыт [показать]
     
  • 2.24, iZEN, 15:07, 19/02/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Каждый раз при выходе новой версии libpng 1 x нужно пересобирать всё ПО, от неё ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.25, maxst, 15:34, 19/02/2013 [^] [ответить] [смотреть все]  
  • +/
    Недавно вышла 1 5 14 скоро выйдет 1 5 15, вовсе необязательно перепрыгивать на в... весь текст скрыт [показать]
     
     
  • 4.46, iZEN, 00:59, 20/02/2013 [^] [ответить] [смотреть все]  
  • –1 +/
    Когда перепрыгивать, решают мантейнеры портов ... весь текст скрыт [показать]
     
  • 3.33, Аноним, 19:09, 19/02/2013 [^] [ответить] [смотреть все]  
  • +/
    Нет У вас же есть portupgrade portmaster которые сохраняют старые версии библио... весь текст скрыт [показать]
     
     
  • 4.45, iZEN, 00:54, 20/02/2013 [^] [ответить] [смотреть все]  
  • –1 +/
    Совет использовать pormaster -w в usr ports UPDATING для libpng пакет png ... весь текст скрыт [показать]
     
     
  • 5.51, Аноним, 00:45, 21/02/2013 [^] [ответить] [смотреть все]  
  • +/
    А тебе что, для каждого апдейта библиотеки должны в UPDATING писать Не делаешь ... весь текст скрыт [показать]
     
     ....нить скрыта, показать (20)

  • 1.5, Аноним, 23:28, 18/02/2013 [ответить] [смотреть все]  
  • +3 +/
    зачем, когда есть фотошоп ... весь текст скрыт [показать]
     
     
  • 2.6, exn, 23:32, 18/02/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    и не поспориш xD ... весь текст скрыт [показать] [показать ветку]
     
  • 2.14, Аноним, 05:47, 19/02/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    настолько неожиданно, что даже не толсто... весь текст скрыт [показать] [показать ветку]
     
  • 2.17, б.б., 06:19, 19/02/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Фотошоп тоже на новую 1 6 обновится, не переживайте Только узнаем мы об этом че... весь текст скрыт [показать] [показать ветку]
     
  • 1.8, Аноним, 02:26, 19/02/2013 [ответить] [смотреть все]  
  • +1 +/
    Ну вот, опять обновлять всю систему К libpng призывается всё Qt, gtk, cairo, p... весь текст скрыт [показать]
     
     
  • 2.12, Аноним, 04:50, 19/02/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    А что у вас за недосистема что она не умеет сохранять старые версии библиотек, ч... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.16, www2, 06:02, 19/02/2013 [^] [ответить] [смотреть все]  
  • +2 +/
    Может у него LFS - Или FreeBSD, или Arch ... весь текст скрыт [показать]
     
     
  • 4.18, masakra, 09:06, 19/02/2013 [^] [ответить] [смотреть все]  
  • +/
    Фря умеет сохранять старые либы ... весь текст скрыт [показать]
     
     
  • 5.26, Аноним, 15:37, 19/02/2013 [^] [ответить] [смотреть все]  
  • +1 +/
    Нет, фряшные порты не умеют ... весь текст скрыт [показать]
     
     
  • 6.27, masakra, 17:23, 19/02/2013 [^] [ответить] [смотреть все]  
  • –1 +/
    Порты и не должны этого уметь potrmaster -w... весь текст скрыт [показать]
     
  • 6.41, Куяврик, 23:13, 19/02/2013 [^] [ответить] [смотреть все]  
  • +/
    Как там ваш дядька в Киеве ... весь текст скрыт [показать]
     
  • 2.22, лох, 11:31, 19/02/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    А просто не обновлять libpng что, религия не позволяет package mask там или por... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.30, Mihail Zenkov, 18:35, 19/02/2013 [^] [ответить] [смотреть все]  
  • +/
    А переписывать программы при каждой смене libpng разработчикам мэинтейнерам это ... весь текст скрыт [показать]
     
     
  • 4.34, Аноним, 19:11, 19/02/2013 [^] [ответить] [смотреть все]  
  • +/
    Абсолютно Ленивому ламерью западло, но оно может забандлить libpng любой протух... весь текст скрыт [показать]
     
     
  • 5.38, Mihail Zenkov, 20:29, 19/02/2013 [^] [ответить] [смотреть все]  
  • +/
    Правильно, зачем хранить собственные костыли в одном месте Пусть лучше каждый р... весь текст скрыт [показать]
     
     
  • 6.40, Аноним, 20:47, 19/02/2013 [^] [ответить] [смотреть все]  
  • +/
    зато как значимость библиотеки возрастает ... весь текст скрыт [показать]
     
  • 6.52, Аноним, 00:47, 21/02/2013 [^] [ответить] [смотреть все]  
  • +/
    Нет, костылей в коде быть вообще не должно Крайнее им место - в портах пакетах ... весь текст скрыт [показать]
     
     ....нить скрыта, показать (12)

  • 1.13, Аноним, 04:55, 19/02/2013 [ответить] [смотреть все]  
  • +/
    apng ... весь текст скрыт [показать]
     
     
  • 2.20, maxst, 09:27, 19/02/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    добавляется отдельным патчем ... весь текст скрыт [показать] [показать ветку]
     
  • 1.19, Аноним, 09:24, 19/02/2013 [ответить] [смотреть все]  
  • +/
    pngOS ... весь текст скрыт [показать]
     
  • 1.21, клоун Стаканчик, 10:40, 19/02/2013 [ответить] [смотреть все]  
  • –1 +/
    А какой глобальный смысл в удалении устаревшего кода? Ну сохранили бы со статусом "obsolete" - и фиг с ним. Зачем создавать проблемы тем, чьи проблемы ты должен решать?
     
     
  • 2.23, Аноним, 13:36, 19/02/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Windows way ... весь текст скрыт [показать] [показать ветку]
     
  • 2.31, Mihail Zenkov, 18:42, 19/02/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    > А какой глобальный смысл в удалении устаревшего кода? Ну сохранили бы со
    > статусом "obsolete" - и фиг с ним. Зачем создавать проблемы тем,
    > чьи проблемы ты должен решать?

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

    Чистить API тоже нужно, но сперва пометить как deprecated и лишь через пол года - год удалять. Да и как правило библиотеки с хорошим дизайном редко сильно меняют API, в основном просто расширяют, соответственно обратная совместимость не ломается.

     
     
  • 3.35, Аноним, 19:13, 19/02/2013 [^] [ответить] [смотреть все]  
  • +/
    Сами это написали, а выше ныли как страшно переписывать под новые версии libpng... весь текст скрыт [показать]
     
     
  • 4.37, Mihail Zenkov, 20:21, 19/02/2013 [^] [ответить] [смотреть все]  
  • –1 +/
    >> Чистить API тоже нужно, но сперва пометить как deprecated и лишь через пол года - год удалять.
    > Сами это написали, а выше ныли как страшно переписывать под новые версии.
    > libpng так и делают, только времени доют ещё больше.

    Как раз с libpng и возникают проблемы, ибо программа собраная с ее поддержкой жестко привязывается к конкретной версии. Примеры уже здесь приводили. Ни с одной другой библиотекой такого не наблюдается. Даже glibc проще обновить.

    Где это они времени больше дают? Что-то не припомню при компиляции "Warning: xxxx this function depricated", за то вот error'ы как грибы после дождя, если версия не совпала.

     
     
  • 5.47, maxst, 08:35, 20/02/2013 [^] [ответить] [смотреть все]  
  • +/
    > Где это они времени больше дают?

    Ну вот к примеру что можно найти в libpng-manual.txt в разделе где перечисляются изменения между 1.2.x и 1.4.x:

    The functions png_read_init(info_ptr), png_write_init(info_ptr),
    png_info_init(info_ptr), png_read_destroy(), and png_write_destroy()
    have been removed.  They have been deprecated since libpng-0.95.

    The png_permit_empty_plte() was removed. It has been deprecated
    since libpng-1.0.9.  Use png_permit_mng_features() instead.


     
     
  • 6.48, Mihail Zenkov, 15:35, 20/02/2013 [^] [ответить] [смотреть все]  
  • –1 +/
    Вот только на практике при попытке собрать приложение написанное под API 1.2.x с новой 1.4.x заканчивается кучей ошибок, а не warning'ов.

    Я использую D как основной язык, так там API основной библиотеки долгое время был крайне нестабилен - ибо язык очень быстро развивался, но при этом я не ощущал от этого большого дискомфорта, так как реально старый API переставал работать только через продолжительный срок и при каждой компиляции я видел, что функция deprecated и дату/версию в которой ее удалят.

     
     
  • 7.49, maxst, 16:28, 20/02/2013 [^] [ответить] [смотреть все]  
  • +1 +/
    > Вот только на практике при попытке собрать приложение написанное под API 1.2.x
    > с новой 1.4.x заканчивается кучей ошибок, а не warning'ов.

    В ветке 1.2.x ширину изображения можно было получить двумя способами:
    info_ptr->width
    png_get_image_width()

    В ветке 1.4.x прямой доступ убрали как небезопасный и оставили только
    png_get_image_width()

    Именно это изменение вызвало наибольший дискомфорт: во многих старых приложениях был прямой доступ и видимо разработчики libpng не смогли придумать, как сделать чтобы чтение info_ptr->width некоторое время работало, но предупреждало, что этот подход deprecated...

    По сравнению с этим, переход от 1.4.x к 1.5.x был относительно безболезненным, думаю 1.6.x тоже пройдет без особых проблем.

     
  • 5.53, Аноним, 00:49, 21/02/2013 [^] [ответить] [смотреть все]  
  • +/
    И в glibc есть deprecated, и вообще вы сколько бибилотек пользуете Я постоянно ... весь текст скрыт [показать]
     
  • 1.44, анонимаус, 23:56, 19/02/2013 [ответить] [смотреть все]  
  • +2 +/
    Прошлое многочасовое обновление с libpng 1.2 до 1.5 было со слезами на глазах и почти истерикой.
     

    Ваш комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:
     
    Навигация
     
     Новости для экспорта XML
     В социальных сетях:  twitter    
     Сводные | за день | мини-новости
     Разделы новостей
     Что нового на OpenNet
     Поиск в новостях
     Новые комментарии
     Добавить свою новость

    Важное
    - 17.04 Релиз Linux-дистрибутива Ubuntu 14.04 (106 +44)
    - 17.04 Debian 6 Squeeze объявлен LTS-выпуском и будет поддерживаться до февраля 2016 года (74 +26)
    - 16.04 Red Hat представил Atomic, концепцию модульной ОС на базе изолированных контейнеров (83 +18)
    - 08.04 В OpenSSL обнаружена критическая уязвимость, которая может привести к утечке закрытых ключей (172 +22)
    - 04.04 Dropbox опубликовал Pyston, реализацию языка Python, базирующуюся на JIT (64 +19)

    Советы
    - 09.04 Блокирование попыток эксплуатации heartbeat-уязвимости в OpenSSL средствами iptables
    - 04.04 Создание чистого openvz-контейнера на основе CentOS 6
    - 05.03 Установка сервера видеоконференций openmeetings 2.2 в Debian 7.4
    - 14.01 Организация ввода спецсимволов в системах с X.Org
    - 13.01 Создание собственного модуля Samba VFS

    Обсуждаемые новости
    - 16:50 Релиз Linux-дистрибутива Ubuntu 14.04 (105)
    - 16:35 Исследование Coverity показало отставание качества проприета (209)
    - 16:32 Tor заблокировал около 600 узлов, подверженных уязвимости He (12)
    - 16:26 Apache OpenOffice преодолел отметку в 100 миллионов загрузок (48)
    - 16:16 Релиз KDE 4.13 (57)
    - 16:11 Выпуск DNS-сервера BIND 10 1.2.0 ознаменовал передачу проект (26)
    - 16:05 Выход свободной облачной платформы OpenStack 2014.1 'Ic (8)
    - 15:54 Линус Торвальдс выдвинул ультиматум на приём патчей от разра (310)


      Закладки на сайте
      Проследить за страницей
    Created 1996-2014 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList