OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 15 Октябрь, 2019 04:12

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 94 ]  На страницу 1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Zlib
СообщениеДобавлено: Понедельник, 21 Апрель, 2008 14:18 

Зарегистрирован: Среда, 17 Январь, 2007 03:59
Сообщения: 225
Господа!
А есть ли где-нибудь порт zlib на Component Pascal?

Обновлено модератором 23.10.2010: http://oberoncore.ru/bbcc/subs/zlib/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Порт zlib
СообщениеДобавлено: Понедельник, 21 Апрель, 2008 17:13 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8180
Откуда: Троицк, Москва
Штирлиц писал(а):
Господа!
А есть ли где-нибудь порт zlib на Component Pascal?


Это не тот, что используется в формате png?
Надо бы научить ББ сжимать картинки для хранения в документах, а то простенькие картинки раздувают файл.

Подсистема Pac что-то про сжатие содержит -- интересно, пересекается ли с zlib.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Порт zlib
СообщениеДобавлено: Понедельник, 21 Апрель, 2008 17:25 

Зарегистрирован: Среда, 17 Январь, 2007 03:59
Сообщения: 225
Info21 писал(а):
Штирлиц писал(а):
Господа!
А есть ли где-нибудь порт zlib на Component Pascal?


Это не тот, что используется в формате png?
Надо бы научить ББ сжимать картинки для хранения в документах, а то простенькие картинки раздувают файл.

Подсистема Pac что-то про сжатие содержит -- интересно, пересекается ли с zlib.


Вот как раз для png то мне и нужно.
Чтобы самому не писать, если уже есть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Порт zlib
СообщениеДобавлено: Понедельник, 21 Апрель, 2008 19:05 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4313
Откуда: Россия, Орёл
Info21 писал(а):
Подсистема Pac что-то про сжатие содержит -- интересно, пересекается ли с zlib.

Нет, не пересекается.

Самое простое - сделать интерфейсный модуль к соответствующей виндовой библиотеки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Порт zlib
СообщениеДобавлено: Понедельник, 21 Апрель, 2008 19:39 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9147
Откуда: Россия, Орёл
Можно взять за ориентир ZStreams дельфовые - что-то такое было....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Порт zlib
СообщениеДобавлено: Понедельник, 21 Апрель, 2008 21:49 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4313
Откуда: Россия, Орёл
Илья Ермаков писал(а):
Можно взять за ориентир ZStreams дельфовые - что-то такое было....

Если бы речь шла просто о сжатии информации, то можно было бы взять Pac и сопутствующие алгоритмы, которые с ним в комплекте не идут (см. коллекцию Зинна). Я вот например мечтаю, что кто-нибудь сообразит поддержку формата 7-zip (открытый и расширяемый) и алгоритма LZMA, ибо самому хоцца, но не досуг. :)

А так как речь идёт о PNG, то брать нужно вполне конкретную вещь и работать с ней стандартно (либо полностью портировать, что было бы очень не плохо, на будущее).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Порт zlib
СообщениеДобавлено: Вторник, 22 Апрель, 2008 08:25 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4509
Откуда: Россия, Орёл
Info21 писал(а):
Это не тот, что используется в формате png?
Надо бы научить ББ сжимать картинки для хранения в документах, а то простенькие картинки раздувают файл.

Один раз нужно было вставить картинку в качестве комментария к исходнику. Bmp вставлять не понравилось как раз из-за раздувания. Я вставлял png при помощи Abf медиа. Там картинки через FreeImage отображаются, png оно поддерживает. Внутрь документа внедрять не стал (хотя вроде можно), файл картинки лежит рядом с исходниками.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Порт zlib
СообщениеДобавлено: Вторник, 22 Апрель, 2008 08:52 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4313
Откуда: Россия, Орёл
Евгений Темиргалеев писал(а):
Info21 писал(а):
Это не тот, что используется в формате png?
Надо бы научить ББ сжимать картинки для хранения в документах, а то простенькие картинки раздувают файл.

Один раз нужно было вставить картинку в качестве комментария к исходнику. Bmp вставлять не понравилось как раз из-за раздувания. Я вставлял png при помощи Abf медиа. Там картинки через FreeImage отображаются, png оно поддерживает. Внутрь документа внедрять не стал (хотя вроде можно), файл картинки лежит рядом с исходниками.

Кстати да, FreeImage поддерживает многие форматы...

Однако порт PNG не помешает... :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Порт zlib
СообщениеДобавлено: Вторник, 22 Апрель, 2008 11:42 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8180
Откуда: Троицк, Москва
Борис Рюмшин писал(а):
... А так как речь идёт о PNG, то брать нужно вполне конкретную вещь и работать с ней стандартно ...


Тут два пункта:
1) полная поддержка PNG (а там всего до дьявола).
2) поддержка частичная -- только для ужатия BMP в документах (причем, видимо, для начала не любых BMP, а подмножества для конкретной работы), а это гораздо проще.

Для 2), строго говоря, PNG не нужен, может, стоит на 1м шаге сделать какие-то абстрактные хуки, и подвести под них че-нить из Pac?
Впрочем, речь о хранимых документах, поэтому все реализации придется тащить в будущее...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Порт zlib
СообщениеДобавлено: Вторник, 22 Апрель, 2008 11:49 

Зарегистрирован: Среда, 17 Январь, 2007 03:59
Сообщения: 225
Я нашел в сети zlib.NET_104
Попробую портировать ее в BlackBox и прикрутить к png
Получится без сторонних dll


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Порт zlib
СообщениеДобавлено: Вторник, 22 Апрель, 2008 14:02 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8180
Откуда: Троицк, Москва
Штирлиц писал(а):
Попробую портировать ее в BlackBox и прикрутить к png


Это будет здорово!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Порт zlib
СообщениеДобавлено: Пятница, 16 Май, 2008 15:50 

Зарегистрирован: Среда, 17 Январь, 2007 03:59
Сообщения: 225
Перенес Zlib с Oberon V4 под BlackBox
Прошу тестировать, може что и не работать.
Замечания welcom.

P.S. Сравните читабельность кода оригинального ZipOberon
и zlib.NET_104. Конечно можно извратиться на любом языке,
каким бы он не был, но по моему ZipOberon
писали люди с правильными извилинами и руками.


Последний раз редактировалось Штирлиц Понедельник, 09 Июнь, 2008 10:12, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Порт zlib
СообщениеДобавлено: Вторник, 03 Июнь, 2008 16:00 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4313
Откуда: Россия, Орёл
Штирлиц писал(а):
Перенес Zlib с Oberon V4 под BlackBox
Прошу тестировать, може что и не работать.
Замечания welcom.

С внешней стороны вроде как всё нормально, хотя подробно не тестировал. А на счёт реализации PNG: не стоит ли её взять тоже из внешнего источника - из BlueBottle.

P.S. Несмотря на неудачную, предпринятую однажды, попытку создать единую библиотеку для разнородных Оберонов, в этой идее есть смысл. Как минимум неплохо бы аккумулировать что-то кроссобероновское для поддержки различных передовых медиа-форматов и форматов документов... не всего подряд, а только самого необходимого...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Порт zlib
СообщениеДобавлено: Вторник, 03 Июнь, 2008 16:13 

Зарегистрирован: Среда, 17 Январь, 2007 03:59
Сообщения: 225
Борис Рюмшин писал(а):
Штирлиц писал(а):
Перенес Zlib с Oberon V4 под BlackBox
Прошу тестировать, може что и не работать.
Замечания welcom.

С внешней стороны вроде как всё нормально, хотя подробно не тестировал. А на счёт реализации PNG: не стоит ли её взять тоже из внешнего источника - из BlueBottle.

P.S. Несмотря на неудачную, предпринятую однажды, попытку создать единую библиотеку для разнородных Оберонов, в этой идее есть смысл. Как минимум неплохо бы аккумулировать что-то кроссобероновское для поддержки различных передовых медиа-форматов и форматов документов... не всего подряд, а только самого необходимого...


По PNG я как раз эти и занимаюсь. :D
Просто времени немного не хватает.
В Aos в AosPNGDecoder.Mod к сожалению реализован только non interlace method
а Adam7 - нет


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Порт zlib
СообщениеДобавлено: Вторник, 03 Июнь, 2008 16:16 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4313
Откуда: Россия, Орёл
Штирлиц писал(а):
В Aos в AosPNGDecoder.Mod к сожалению реализован только non interlace method
а Adam7 - нет

Ну хоть что-то, уже неплохо...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Порт zlib
СообщениеДобавлено: Среда, 04 Июнь, 2008 19:12 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2601
Откуда: Россия, Ярославль
Такой вопрос про использований Zlib:
А как создать внутри архива каталог? Вот многие архиваторные програмы умеют запаковывать в архив файлы вместе с каталогами, а в ZlibZip в интерфесе модуля я не нашёл ни одной зацепки. Если возможно, просто ткните в какой-нибудь документ, в котором всё внятно описано.
ЗЫ: чем проще, тем лучше. Очень не хочется изучать все премудрости упаковщика.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Порт zlib
СообщениеДобавлено: Среда, 04 Июнь, 2008 19:23 

Зарегистрирован: Среда, 17 Январь, 2007 03:59
Сообщения: 225
Petryxa писал(а):
Такой вопрос про использований Zlib:
А как создать внутри архива каталог? Вот многие архиваторные програмы умеют запаковывать в архив файлы вместе с каталогами, а в ZlibZip в интерфесе модуля я не нашёл ни одной зацепки. Если возможно, просто ткните в какой-нибудь документ, в котором всё внятно описано.
ЗЫ: чем проще, тем лучше. Очень не хочется изучать все премудрости упаковщика.


Я сам толком не разбирался, но в ZlibZip - есть EntryDesc


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Порт zlib
СообщениеДобавлено: Среда, 04 Июнь, 2008 19:48 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2601
Откуда: Россия, Ярославль
Всё оказалось очень просто. Надо только при добавлении Entry в архив указать в названии относительный путь к файлу. Это и будет считаться каталогом. Например, вот так:
Код:
PROCEDURE Test*;
VAR arc: ZlibZip.Archive; loc: Files.Locator; f : Files.File; r: Files.Reader; res: INTEGER;
BEGIN
 arc := ZlibZip.OpenArchive("archive.zip", res);
 IF res = ZlibZip.Ok THEN
   loc := Files.dir.This("Zlib/Rsrc/");
   f := Files.dir.Old(loc, "file.ext", TRUE);
   r := f3.NewReader(NIL);
   ZlibZip.AddEntry(arc, "dir/file.ext", r, f.Length(), SHORT(ZlibConst.BestCompression), SHORT(ZlibConst.DefaultStrategy), res);
   ZlibZip.CloseArchive(arc, res)
 END
END Test;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Порт zlib
СообщениеДобавлено: Среда, 04 Июнь, 2008 19:56 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2601
Откуда: Россия, Ярославль
Обнаружил ошибку: несовместимость с русскими буквами. Если в качестве названия упаковываемого файла указать русские буквы то внутри полученного архива имя файла отобразится в виде крякозябров, и если открыть архив, упакованный сторонним паковщиком(я использовал стандартный плагин Тотал Коммандера), то при просмотре названия содержимого также видны крякозябры.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Порт zlib
СообщениеДобавлено: Понедельник, 09 Июнь, 2008 11:39 

Зарегистрирован: Среда, 17 Январь, 2007 03:59
Сообщения: 225
Порт zlib с исправлениями.
Для того, чтобы корректно отображались файлы с русскими
именами надо использовать CharToOem.
Пример приведен в Testzip.

[Модератор] с 20.10.2010 размещён: http://oberoncore.ru/bbcc/subs/zlib/


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 94 ]  На страницу 1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB