OpenImageIO
Autor | OpenImageIO.org |
---|---|
Pierwsze wydanie | 31 maja 2009 |
Aktualna wersja stabilna | 2.5.16.0 (2 października 2024) [±] |
Platforma sprzętowa | wieloplatformowa |
System operacyjny | wieloplatformowa |
Rodzaj | biblioteka |
Licencja | BSD (zmodyfikowana) |
Strona internetowa |
OpenImageIO – otwarta biblioteka programistyczna przeznaczona do przetwarzania plików graficznych zapisanych w różnych formatach, rozpowszechniana wraz z kilkoma programami demonstrującymi jej użycie. Obsługa formatów zrealizowana jest za pomocą wtyczek. Obecnie biblioteka dostępna jest na platformy Windows, Linux oraz OS X. Całość rozpowszechniana jest na zmodyfikowanej licencji BSD.
Historia
[edytuj | edytuj kod]Pierwowzorem biblioteki było ImageIO – API będące częścią rozwijanej przez nVidię aplikacji do renderingu – Gelato. Pracę nad ImageIO rozpoczęto w 2002 roku, wtedy też jego specyfikacja oraz pliki nagłówkowe zostały udostępnione na licencji BSD, zamknięta została natomiast implementacja. Rozwój ImageIO trwał do roku 2007, kiedy projekt Gelato został zawieszony. Po jego zawieszeniu Larry Gritz postanowił wykorzystać udostępnione pliki nagłówkowe do stworzenia otwartej implementacji API, tak powstał projekt OpenImageIO.
W kwietniu 2009 roku OpenImageIO został zaakceptowany do programu Google Summer of Code, w którym otrzymał cztery miejsca dla studentów[1]. W ramach stypendium studenci przeportowali bibliotekę na systemy z rodziny Windows, rozwinęli przeglądarkę plików graficznych IV oraz dodali interfejs umożliwiający wykorzystanie klas biblioteki w języku Python[2].
We wrześniu 2009 roku miała premiera filmu Klopsiki i inne zjawiska pogodowe w którym biblioteka został wykorzystana do generowania tekstur dla animacji[3][4]
W 2010 i 2011 roku projekt został ponownie zaakceptowany do programu Google Summer of Code i (dwukrotnie) dostał trzy miejsca dla studentów[5].
Ogólna budowa
[edytuj | edytuj kod]Biblioteka zbudowana jest z kilku podstawowych klas. Należą do nich:
- ImageInput oraz ImageOutput stanowiące interfejs wtyczek, dzięki którym programista wykorzystujący bibliotekę nie musi znać szczegółów implementacji używanych formatów.
- ImageBuf odpowiedzialna za przechowywanie obrazów w pamięci; klasa ta wykorzystuje interfejs klas ImageInput oraz ImageOutput do operacji na obrazach.
- ImageCache zarządzająca pamięcią podręczną w taki sposób, że biblioteka może operować na dużej ilości danych wykorzystując niewielką ilość pamięci.
Oprogramowanie
[edytuj | edytuj kod]Wraz z biblioteką dostarczone są programy demonstrujące jej możliwości:
- iconvert – aplikacja konwertująca plik z jednego formatu graficznego do innego. W ramach konwersji istnieje możliwość nie tylko zmiany formatu pliku, ale także formatu danych przechowywanych przez ten plik (np. konwersja danych w formacje zmiennoprzecinkowym na format całkowity 8-bitowy)
- idiff – aplikacja porównująca dwa pliki graficzne, informująca jak bardzo się różnią oraz tworząca trzeci plik będący wynikiem porównania
- igrep – aplikacja przeszukująca metadane podanego pliku w celu znalezienia zadanego wzorca.
- iinfo – aplikacja wyświetlająca informacje (wysokość, szerokość, format, metadane) o podanym pliku graficznym.
- iv – przeglądarka plików graficznych
- maketx – generator mipmap
Ponieważ wszystkie powyżej opisane programy korzystają z biblioteki OpenImageIO, potrafią wykonywać zadane operacje na dowolnym formacie obsługiwanym przez bibliotekę.
Obsługiwane formaty
[edytuj | edytuj kod]Biblioteka obsługuje formaty OpenEXR, HDR/RGBE, TIFF, JPEG/JFIF, JPEG 2000, PNG, Targa, BMP, ICO, FITS, Softimage PIC, DDS, SGI.
Zobacz też
[edytuj | edytuj kod]Przypisy
[edytuj | edytuj kod]- ↑ Informacja o udziale OpenImageIO.org w GSoC 2009. [dostęp 2014-09-19].
- ↑ Kody źródłowe projektów zrealizowanych w ramach Google Summer of Code 2009. [dostęp 2010-04-01].
- ↑ Informacje o wykorzystaniu OIIO w filmie Klopsiki i inne zjawiska pogodowe. [dostęp 2009-09-18]. (ang.).
- ↑ Informacje o wykorzystaniu OIIO w filmie Klopsiki i inne zjawiska pogodowe. [dostęp 2009-10-04]. (ang.).
- ↑ Informacje o zaakceptowaniu OIIO do GSoC 2010. [dostęp 2019-11-09].
Linki zewnętrzne
[edytuj | edytuj kod]- Oficjalna strona wiki projektu [dostęp 9 listopada 2019] (ang.)