SAIL зургийн код тайлах номын сан боломжтой

MIT лицензийн дагуу хэвлэгдсэн хөндлөн платформ дүрс тайлах номын сан SAIL. SAIL нь удаан хугацааны туршид дэмжигдээгүй зураг харагчаас C хэл дээр дахин бичсэн кодлогчийн нэрийн өөрчлөлт юм. K хэрэм, гэхдээ өндөр түвшний хийсвэр API болон олон тооны сайжруулалтуудтай. Зорилтот үзэгчид: зураг үзэгчид, тоглоом хөгжүүлэх, бусад зорилгоор санах ойд зураг ачаалах. Номын санг хөгжүүлж байгаа ч ашиглах боломжтой болсон. Хөгжлийн энэ үе шатанд хоёртын болон эх кодын нийцтэй байх баталгаа байхгүй.

Онцлог шинжүүд:

  • Гуравдагч талын хамааралгүй (кодекүүдээс бусад) C хэл дээр бичигдсэн энгийн, авсаархан, хурдан номын сан;
  • Бүх хэрэгцээнд зориулагдсан энгийн, ойлгомжтой, нэгэн зэрэг хүчирхэг API;
  • C++-ийн холболтууд;
  • Зургийн форматыг динамикаар ачаалагдсан кодлогч дэмждэг;
  • Файл, санах ой, бүр өөрийн мэдээллийн эх сурвалжаас зураг унших (бичих);
  • Зургийн төрлийг файлын өргөтгөлөөр эсвэл өөр аргаар тодорхойлох ид шидийн тоо;
  • Одоогоор дэмжигдсэн форматууд: png (унших, зөвхөн Windows), JPEG (унших, бичих) PNG (унших, бичих).
    Шинэ формат нэмэх ажил хийгдэж байна. KSquirrel-libs нь нэг талаараа 60 орчим форматыг дэмждэг бөгөөд хамгийн алдартай форматууд нь эхний эгнээнд байдаг;

  • Унших үйлдлүүд нь үргэлж RGB болон RGBA форматаар пикселүүдийг гаргаж чаддаг;
  • Зарим кодлогч нь илүү том форматын жагсаалтад пиксел гаргаж чаддаг;
  • Ихэнх кодлогч нь мөн SOURCE пикселийг гаргаж чаддаг. Энэ нь жишээлбэл, CMYK эсвэл YCCK зургуудаас бүрэн мэдээлэл авахыг хүсдэг хүмүүст хэрэгтэй;
  • ICC профайлыг унших, бичих;
  • C, Qt, SDL хэл дээрх жишээнүүд;
  • Дэмжигдсэн платформууд:
    Windows (суулгагч), macOS (brew) болон Linux (Debian).

SAIL юу өгдөггүй вэ:

  • Зураг засварлах;
  • Үндсэн кодлогч (libjpeg гэх мэт) -ээс бусад өнгөний орон зай хувиргах функцууд;
  • Өнгөний удирдлагын функцууд (ICC профайлыг ашиглах гэх мэт)

C хэл дээрх код тайлах хамгийн энгийн жишээ:

struct sail_context *контекст;

SAIL_TRY(sail_init(&context));

struct sail_image *зураг;
тэмдэггүй тэмдэгт *зураг_пиксел;

SAIL_TRY(дарвуулт_унших(зам,
нөхцөл байдал,
&зураг,
(хүчингүй **)&зураг_пиксел));

/*
* Энд хүлээн авсан пикселийг боловсруулна.
* Үүнийг хийхийн тулд зураг->өргөн, зураг->өндөр, зураг->мөр тутамд_байт,
* ба зураг->пикселийн_формат.
*/

/* Цэвэрлэх */
үнэгүй(зураг_пиксел);
дарвуулт_устгах_зураг(зураг);

API түвшний товч тайлбар:

  • Шинэхэн: "Би энэ JPEG-г татаж авмаар байна"
  • Нарийвчилсан: "Би энэ хөдөлгөөнт GIF-г санах ойноос ачаалмаар байна"
  • Далайн гүний шумбагч: "Би энэ хөдөлгөөнт GIF-г санах ойноос ачаалж, сонгосон кодлогч болон пикселийн гаралтыг бүрэн хянахыг хүсч байна."
  • Техникийн шумбагч: "Би дээрх бүх зүйлийг, мөн өөрийн мэдээллийн эх сурвалжийг хүсч байна"

Нэг бүсээс шууд өрсөлдөгчид:

  • Үнэгүй дүрс
  • DevIL
  • SDL_Зураг
  • WIC
  • imlib2
  • Boost.GIL
  • gdk-pixbuf

Бусад номын сангаас ялгаатай нь:

  • Хүлээгдэж буй объектуудтай хүний ​​API - зураг, палитр гэх мэт.
  • Ихэнх кодлогч нь зөвхөн RGB/RGBA пикселээс илүүг гаргаж чаддаг.
  • Ихэнх кодлогч нь RGB рүү хөрвүүлэхгүйгээр анхны пикселийг гаргаж чаддаг.
  • Та ямар ч хэл дээр кодлогч бичих боломжтой, мөн төслийг бүхэлд нь дахин эмхэтгэхгүйгээр нэмж, устгаж болно.
  • Анхны зургийн талаархи мэдээллийг хадгалах.
  • "Шинжлэх" гэдэг нь пикселийн өгөгдлийг тайлахгүйгээр зургийн талаарх мэдээллийг олж авах үйл явц юм.
  • Хэмжээ ба хурд.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх