Автономная библиотека для работы с .PNG
От: alexzz  
Дата: 06.02.11 13:30
Оценка:
Ищу какую-нибудь библиотечку, чтобы могла создавать и сохранять png-картинки. Ну, если не png, то хоть какие-нибудь картинки. Требования всего два:

1) Библиотека не должна быть завязана на System.Drawing и System.Drawing.*
2) Методы SetPixel(x,y,color) и SaveToFile(filename)

Для чего надо:
Я программно генерирую и преобразую карты высот ландшафта для 3D-движка Unity. Итоговый результат преобразований я вижу в 3D, но когда он меня не устраивает, хотелось бы видеть и промежуточные результаты. Встроенные средства движка для создания .png использовать проблематично, потому что они не потокобезопасны (у меня все расчёты в фоновом потоке), а содержимое System.Drawing в Unity заблокировано.
Re: Автономная библиотека для работы с .PNG
От: Temnikov Россия  
Дата: 06.02.11 14:57
Оценка:
Здравствуйте, alexzz, Вы писали:

A>Ищу какую-нибудь библиотечку, чтобы могла создавать и сохранять png-картинки. Ну, если не png, то хоть какие-нибудь картинки. Требования всего два:


A>1) Библиотека не должна быть завязана на System.Drawing и System.Drawing.*

A>2) Методы SetPixel(x,y,color) и SaveToFile(filename)

A>Для чего надо:

A>Я программно генерирую и преобразую карты высот ландшафта для 3D-движка Unity. Итоговый результат преобразований я вижу в 3D, но когда он меня не устраивает, хотелось бы видеть и промежуточные результаты. Встроенные средства движка для создания .png использовать проблематично, потому что они не потокобезопасны (у меня все расчёты в фоновом потоке), а содержимое System.Drawing в Unity заблокировано.

Пиши в bmp. Все предельно просто, заполняешь хидер, потом данные. Написать класс с твоими требованиями — час, максимум два.
Re: Автономная библиотека для работы с .PNG
От: jakor  
Дата: 06.02.11 15:59
Оценка:
Здравствуйте, alexzz, Вы писали:

A>Ищу какую-нибудь библиотечку, чтобы могла создавать и сохранять png-картинки. Ну, если не png, то хоть какие-нибудь картинки. Требования всего два:


A>1) Библиотека не должна быть завязана на System.Drawing и System.Drawing.*

A>2) Методы SetPixel(x,y,color) и SaveToFile(filename)

A>Для чего надо:

A>Я программно генерирую и преобразую карты высот ландшафта для 3D-движка Unity. Итоговый результат преобразований я вижу в 3D, но когда он меня не устраивает, хотелось бы видеть и промежуточные результаты. Встроенные средства движка для создания .png использовать проблематично, потому что они не потокобезопасны (у меня все расчёты в фоновом потоке), а содержимое System.Drawing в Unity заблокировано.

LodePNG тебя спасет.

а еще проще писать YV12 — и pYUVviewer.exe производства элекарда. или просто Y компоненту — и ирфанка поднимет твой файл,как raw. то же самое и если писать несжатый РГБ на диск, ирфанка тоже его поймет.
Re: Автономная библиотека для работы с .PNG
От: baranovda Российская Империя  
Дата: 06.02.11 20:22
Оценка:
Здравствуйте, alexzz, Вы писали:

A>Ищу какую-нибудь библиотечку, чтобы могла создавать и сохранять png-картинки. Ну, если не png, то хоть какие-нибудь картинки. Требования всего два:


A>1) Библиотека не должна быть завязана на System.Drawing и System.Drawing.*

A>2) Методы SetPixel(x,y,color) и SaveToFile(filename)

как workaround — смастерить исходную картинку в bmp и конвертировать её в PNG через Microsoft WIA.

http://msdn.microsoft.com/en-us/library/ms630819(v=vs.85).aspx
Re[2]: Автономная библиотека для работы с .PNG
От: alexzz  
Дата: 06.02.11 20:46
Оценка:
Здравствуйте, baranovda, Вы писали:

B>Здравствуйте, alexzz, Вы писали:


A>>Ищу какую-нибудь библиотечку, чтобы могла создавать и сохранять png-картинки. Ну, если не png, то хоть какие-нибудь картинки. Требования всего два:


A>>1) Библиотека не должна быть завязана на System.Drawing и System.Drawing.*

A>>2) Методы SetPixel(x,y,color) и SaveToFile(filename)

B>как workaround — смастерить исходную картинку в bmp и конвертировать её в PNG через Microsoft WIA.


B>http://msdn.microsoft.com/en-us/library/ms630819(v=vs.85).aspx


Забыл объяснить одну вещь: движок Unity работает с Mono, которое не знает о существовании ни Windows, ни Microsoft. Движок кроссплатформенный, поэтому не подходят ни Windows-specific решения, ни нативные библиотеки, ни обёртки над ними. Нужна автономная библиотечка целиком из управляемого кода.

Если не найду, замутю свой костыль для .bmp, хотя альфа-канал терять не хотелось бы.
Re: Автономная библиотека для работы с .PNG
От: HotDog Швейцария www.denebspace.com
Дата: 08.02.11 10:14
Оценка: 3 (1)
Здравствуйте, alexzz, Вы писали:

a> Ищу какую-нибудь библиотечку, чтобы могла создавать и сохранять png-картинки. Ну, если не png, то хоть какие-нибудь картинки. Требования всего два:


a> 1) Библиотека не должна быть завязана на System.Drawing и System.Drawing.*

a> 2) Методы SetPixel(x,y,color) и SaveToFile(filename)

http://blogs.msdn.com/b/delay/archive/2011/02/07/what-it-lacks-in-efficiency-it-makes-up-for-in-efficiency-silverlight-ready-png-encoder-implementation-shows-one-way-to-use-net-ienumerables-effectively.aspx
avalon 1.0rc3 rev 380, zlib 1.2.3
Re[2]: Автономная библиотека для работы с .PNG
От: alexzz  
Дата: 08.02.11 12:34
Оценка:
Здравствуйте, HotDog, Вы писали:

HD>Здравствуйте, alexzz, Вы писали:


a>> Ищу какую-нибудь библиотечку, чтобы могла создавать и сохранять png-картинки. Ну, если не png, то хоть какие-нибудь картинки. Требования всего два:


a>> 1) Библиотека не должна быть завязана на System.Drawing и System.Drawing.*

a>> 2) Методы SetPixel(x,y,color) и SaveToFile(filename)

HD>http://blogs.msdn.com/b/delay/archive/2011/02/07/what-it-lacks-in-efficiency-it-makes-up-for-in-efficiency-silverlight-ready-png-encoder-implementation-shows-one-way-to-use-net-ienumerables-effectively.aspx


Супер!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.