Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Чт авг 17, 2017 12:42 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 18 сообщений ]  На страницу 1 2 След.
Автор Сообщение
СообщениеДобавлено: Пт сен 09, 2011 11:47 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Как временное и не очень удобное решение предлагаю порт программы, которая конвертирует bmp/tga/gif/ppm в jpg (т.е. png не понимается).

cjpeg - сжимает изображение в JPEG файл.

Правила пользования

Спойлер: Показать
cjpeg [параметры] [-outfile имя_выходного файла] [имя_входного_файла]

Параметры (можно сокращать):
-quality N[,...] Уровень сжатия (0..100; 5-95 оптимальное значение)
-grayscale Монохромный JPEG
-optimize Оптимизировать таблицу Хоффмана (результат меньше, скорость ниже)
-progressive Создать прогрессивный JPEG
-scale M/N Масштабировать в M/N раз, (например, 1/2)
-targa Входной файл - это tga (обычно не требуется)

Для продвинутых пользователей:
-dct int Использовать целочисленный DCT (по умолчанию)
-dct fast Использовать быстрый DCT (менее точно)
-dct float Использовать DCT с плавающей запятой
-nosmooth Без высококачественного даунсэмплинга
-restart N Установить интервал сбросов (???) в строках
-smooth N Сглаживание (N=1..100 - степень)
-maxmemory N Ограничить использование памяти (в килобайтах)

Для мастеров:
-arithmetic Use arithmetic coding
-baseline Force baseline quantization tables
-qtables file Use quantization tables given in file
-qslots N[,...] Set component quantization tables
-sample HxV[,...] Set component sampling factors
-scans file Create multi-scan JPEG per script file


Legal issues
Спойлер: Показать
============

In plain English:

1. We don't promise that this software works. (But if you find any bugs,
please let us know!)
2. You can use this software for whatever you want. You don't have to pay us.
3. You may not pretend that you wrote this software. If you use it in a
program, you must acknowledge somewhere in your documentation that
you've used the IJG code.

In legalese:

The authors make NO WARRANTY or representation, either express or implied,
with respect to this software, its quality, accuracy, merchantability, or
fitness for a particular purpose. This software is provided "AS IS", and you,
its user, assume the entire risk as to its quality and accuracy.

This software is copyright (C) 1991-2011, Thomas G. Lane, Guido Vollbeding.
All Rights Reserved except as specified below.

Permission is hereby granted to use, copy, modify, and distribute this
software (or portions thereof) for any purpose, without fee, subject to these
conditions:
(1) If any part of the source code for this software is distributed, then this
README file must be included, with this copyright and no-warranty notice
unaltered; and any additions, deletions, or changes to the original files
must be clearly indicated in accompanying documentation.
(2) If only executable code is distributed, then the accompanying
documentation must state that "this software is based in part on the work of
the Independent JPEG Group".
(3) Permission for use of this software is granted only if the user accepts
full responsibility for any undesirable consequences; the authors accept
NO LIABILITY for damages of any kind.

These conditions apply to any software derived from or based on the IJG code,
not just to the unmodified library. If you use our work, you ought to
acknowledge us.

Permission is NOT granted for the use of any IJG author's name or company name
in advertising or publicity relating to this software or products derived from
it. This software may be referred to only as "the Independent JPEG Group's
software".

We specifically permit and encourage the use of this software as the basis of
commercial products, provided that all warranty or liability claims are
assumed by the product vendor.


ansi2knr.c is included in this distribution by permission of L. Peter Deutsch,
sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA.
ansi2knr.c is NOT covered by the above copyright and conditions, but instead
by the usual distribution terms of the Free Software Foundation; principally,
that you must include source code if you redistribute it. (See the file
ansi2knr.c for full details.) However, since ansi2knr.c is not needed as part
of any program generated from the IJG code, this does not limit you more than
the foregoing paragraphs do.

The Unix configuration script "configure" was produced with GNU Autoconf.
It is copyright by the Free Software Foundation but is freely distributable.
The same holds for its supporting scripts (config.guess, config.sub,
ltmain.sh). Another support script, install-sh, is copyright by X Consortium
but is also freely distributable.

The IJG distribution formerly included code to read and write GIF files.
To avoid entanglement with the Unisys LZW patent, GIF reading support has
been removed altogether, and the GIF writer has been simplified to produce
"uncompressed GIFs". This technique does not use the LZW algorithm; the
resulting GIF files are larger than usual, but are readable by all standard
GIF decoders.

We are required to state that
"The Graphics Interchange Format(c) is the Copyright property of
CompuServe Incorporated. GIF(sm) is a Service Mark property of
CompuServe Incorporated."


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


Вложения:
cjpeg.7z [81.93 КБ]
105 скачиваний
Вернуться к началу
СообщениеДобавлено: Сб сен 10, 2011 12:32 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
(Это рабочая в Колибри программа, ее уже можно использовать, например, как дополнение к zSea).


Вернуться к началу
СообщениеДобавлено: Сб сен 10, 2011 2:04 am 
185 Кб не сжатого бинарника, тут даже дизассемблер не поможет - пока разгребешь портянку уже на пенсию придется уходить. :)
Кстати программы падает при холостом запуске. Исходники жутко секретны?


Вернуться к началу
   
СообщениеДобавлено: Сб сен 10, 2011 7:31 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Странно, что падает. У себя такого не замечал. Исходники на сайте, на который я оставил ссылку - это стандартная утилита из пакета libjpeg, линкована статически. Разумеется, программа-крокодил, но это лучше, чем ничего. Я планирую перейти на Колибри в скором времени, хотя бы на недельку, и кучи полезных утилит мне будет не хватать, поэтому готовлюсь к переезду.


Вернуться к началу
СообщениеДобавлено: Сб сен 10, 2011 9:26 am 
Sorcerer писал(а):
Я планирую перейти на Колибри в скором времени, хотя бы на недельку, и кучи полезных утилит мне будет не хватать, поэтому готовлюсь к переезду.

Экстремал.


Вернуться к началу
   
СообщениеДобавлено: Сб сен 10, 2011 11:19 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
Mario, Sorcerer в этом не первый и не последний

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
СообщениеДобавлено: Сб сен 10, 2011 6:24 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Мне оказались нужны следующие утилиты (и, соответственно, я их портировал для Колибри):
cjpeg - сохранение gif/pnm/bmp в jpeg
djpeg - сохранение jpeg в gif/pnm/bmp
pnm2png - сохранение pnm в png
png2pnm - сохранение png в pnm
Эти четыре утилиты (с различными потерями и в несколько этапов) позволяют сохранять файлы gif/png/jpg/bmp в gif/png/jpg/bmp. :)

Кроме того, я почему-то использую консольные текстовые редакторы. В основном, nano - но для него нужно портировать ncurses или реализовать около десятка функций поверх console.obj (кому интересно, могу скинуть файл с описанием этих функций и всего прочего, вдруг кому-то захочется сделать свой curses). Мне удалось завести одну из первых версий редактора joe - клон редактора WordStar. Он довольно-таки удобный (для меня), не считая глюков с прыгающим курсором (возможно, неполная поддержка нужных escape-последовательностей в console.obj?) и проблемы gcc4 (затирание argc/argv при инициализации консоли). Если у кого-нибудь есть gcc-3.3 и время, предлагаю собрать редактор из исходников и выложить сюда (у меня интернет не позволяет скачать и установить gcc 3.3).

Cjpeg можно найти в теме про zSea, а все остальные утилиты находятся в приложенном архиве вместе с документацией. (поправка от модератора - теперь она находится в этой теме в верхнем посте/ Mario)


Вложения:
tools.7z [185.2 КБ]
99 скачиваний
Вернуться к началу
СообщениеДобавлено: Сб сен 10, 2011 10:26 pm 
Не в сети

Зарегистрирован: Вс ноя 04, 2007 2:46 am
Сообщения: 390
Sorcerer, как собираешься решать проблему с браузером? Или ты на эту неделю практически без Интернета собираешься жить?


Вернуться к началу
СообщениеДобавлено: Сб сен 10, 2011 10:51 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3928
Лучше console.obj поправить.


Вернуться к началу
СообщениеДобавлено: Вс сен 11, 2011 7:55 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
В каком плане подправить? Если ты про curses (проклятья!), то там главное - это работа с вводом (noecho, nodelay, keypad) и с виртуальными экранами.Или ты про глюки argc/argv?


Вернуться к началу
СообщениеДобавлено: Вс сен 11, 2011 10:02 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3928
Про глюк argc/argv. Проверь последнюю ревизию.


Вернуться к началу
СообщениеДобавлено: Вс сен 11, 2011 10:28 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Ёлки-моталки! То есть... В рот мне ноги! Работает!
Только нужно внести исправления и вернуть con_write_string, которая когда-то была потеряна, по всей видимости.

Код:
EXPORTS:
...
dd   szcon_write_string,   con_write_length

...
szcon_write_string   db 'con_write_string',0


Вернуться к началу
СообщениеДобавлено: Вс сен 11, 2011 2:24 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3928
Наверное её переименовали в con_write_asciiz.
; void __stdcall con_write_asciiz(const char* string);


Вернуться к началу
СообщениеДобавлено: Вс сен 11, 2011 2:30 pm 
Часть сообщений в эту тему была перенесена из темы zSea, поскольку больше соответствует этой теме.


Вернуться к началу
   
СообщениеДобавлено: Вс сен 11, 2011 4:48 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Serge писал(а):
Наверное её переименовали в con_write_asciiz.
; void __stdcall con_write_asciiz(const char* string);


Нет-нет, это совершенно разные команды! write_asciiz выводит именно asciiz-строку, а write_string выводит n символов. Мне нужна именно вторая, как аналог write(stdout,char,n).


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

Часовой пояс: UTC+03:00


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

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


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

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB