forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=124)
-   -   Lib_png: сохранение изображений в формате PNG (http://forum.boolean.name/showthread.php?t=6193)

ViNT 01.08.2008 13:11

Lib_png: сохранение изображений в формате PNG
 
Вложений: 1
Lib_png - библиотека для сохранения изображений
в ФС телефона в формате PNG и получения бинарника PNG в виде строки.
В версии 3.0 снято ограничение в 64 КБ на размер ZLib блока.

Сохранение в ФС осуществляется функцией save_png:
public static int save_png(Image img, String FileName);

Функция
public static String png_to_string(Image img);
возвращает строку, соответствующую массиву байт
PNG-файла.

PASCAL:
function save_png(img:image;FileName:string):integer;

Параметры:
img-сохраняемое изображение
FileName-имя файла(с расширением .png).

Функция возвращает 1 в случае успешной записи
или -1 в случае ошибки зприси данных.

Функция требует доступа к ФС(запись и чтение).
Поддерживаются телефоны с ФС JSR75.

function png_to_string(img:image):string;

Параметры:
img-исходное изображение.
Возвращает байты PNG-файла в виде строки.


Внимание! Необходимо добавить все файлы из папки res в ресурсы проекта!



Проверено на SE k510i.

temned 01.08.2008 16:10

Ответ: Lib_png: сохранение изображений в формате PNG
 
есть либ для сохранения в bmp и png, а может кто сделать чтоб в jpg сохранялась?

Skythrone 07.08.2008 15:57

Ответ: Lib_png: сохранение изображений в формате PNG
 
ViNT, а можно ли сделать конвертацию картинки в PNG без файловой системы?

Т.е. суть такая - с помощью либы media можно сделать фотку с экрана, а затем этот Image нужно переконвертить в строку, содержащую бинарный контент PNG.

Тогда эту строку можно отправлять отправлять по HTTP на сервер.

В случае же если идти напрямую и отправлять ARGB, то это получится дикий трафик и очень долго.

ViNT 07.08.2008 16:47

Ответ: Lib_png: сохранение изображений в формате PNG
 
Добавил

PHP код:

public static String png_to_string(Image img);
[function 
png_to_string(img:image):string;] 

Возвращает бинарник PNG в виде строки(проверял сохранением строки в ФС).

Используется так:

PHP код:

uses png2;
var
 
png_data:string;
 
im:image;
begin
 im
:=LoadImage('/icon.png');
 
png_data:=png_to_string(im);
 
//дальше отправка на сервер
end

Либа в первом посте.

m1kc. 23.09.2008 21:00

Lib_png: сохранение изображений в формате PNG
 
Вложений: 1
Непонятный глюк. При сохранении изображения в файл "/c:/other/wm_screen.png" (т.е. в память телефона) файл получается битым - около 1/4 изображения видно, а дальше идет черный экран.

Вот битый файл. 128х160. Тестировано на К310 и W610.

ViNT 23.09.2008 21:49

Ответ: Lib_png: сохранение изображений в формате PNG
 
Это в общем-то не глюк, а ограничение используемого алгоритма компрессии. Вроде как максимум 127х127 сохранить получается, 128х128 вообще черный квадрат Малевича получается. Раз уж встала такая проблема, попробую найти алгоритм получше.

Piligrim 24.09.2008 12:09

Ответ: Lib_png: сохранение изображений в формате PNG
 
У меня есть ещё один алгоритм, посмотрю его на предмет ограничений.

m1kc. 24.09.2008 13:36

Lib_png: сохранение изображений в формате PNG
 
ViNT, понятно, надеюсь на тебя :)

ViNT 26.09.2008 23:24

Ответ: Lib_png: сохранение изображений в формате PNG
 
Переделал библиотеку, теперь обрабтывает и большие изображения, до какого предела - не знаю. Архив в первом сообшении.

m1kc. 04.10.2008 17:25

Lib_png: сохранение изображений в формате PNG
 
Все отлично работает, спасибо! :) :super:

Слово "ничто" пишется слитно (это я про твою подпись :) )


Часовой пояс GMT +4, время: 07:40.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot