Ищу какую-нибудь библиотечку, чтобы могла создавать и сохранять png-картинки. Ну, если не png, то хоть какие-нибудь картинки. Требования всего два:
1) Библиотека не должна быть завязана на System.Drawing и System.Drawing.*
2) Методы SetPixel(x,y,color) и SaveToFile(filename)
Для чего надо:
Я программно генерирую и преобразую карты высот ландшафта для 3D-движка
Unity. Итоговый результат преобразований я вижу в 3D, но когда он меня не устраивает, хотелось бы видеть и промежуточные результаты. Встроенные средства движка для создания .png использовать проблематично, потому что они не потокобезопасны (у меня все расчёты в фоновом потоке), а содержимое System.Drawing в Unity заблокировано.
Здравствуйте, 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. Все предельно просто, заполняешь хидер, потом данные. Написать класс с твоими требованиями — час, максимум два.
Здравствуйте, 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. то же самое и если писать несжатый РГБ на диск, ирфанка тоже его поймет.
Здравствуйте, 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
Здравствуйте, 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, хотя альфа-канал терять не хотелось бы.
Здравствуйте, 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
Здравствуйте, 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
Супер!