SAIL画像デコードライブラリが利用可能

MITライセンスに基づく 出版された クロスプラットフォームの画像デコード ライブラリ SAIL。 SAIL は、長らくサポートされていなかった画像ビューアを C で書き直したコーデックをブランド変更したものです。 KSリスですが、高レベルの抽象 API と多数の改良が加えられています。対象読者: 画像ビューア、ゲーム開発、その他の目的で画像をメモリにロードする。ライブラリは開発中ですが、すでに使用可能です。開発のこの段階では、バイナリ コードとソース コードの互換性は保証されていません。

特徴:

  • サードパーティの依存関係 (コーデックを除く) なしで C で書かれた、シンプルでコンパクト、高速なライブラリ。
  • シンプルで理解しやすいと同時に、あらゆるニーズに対応する強力な API。
  • C++ のバインディング。
  • 画像形式は、動的にロードされるコーデックによってサポートされます。
  • ファイル、メモリ、さらには独自のデータ ソースから画像を読み取り (および書き込み) ます。
  • ファイル拡張子またはファイル拡張子による画像タイプの決定 マジックナンバー;
  • 現在サポートされている形式: APNG (読み取り、Windows のみ)、JPEG (読み取り、書き込み) PNG (読み取り、書き込み)。
    新しい形式を追加する作業が進行中です。 KSquirrel-libs は何らかの方法で約 60 のフォーマットをサポートしており、最も一般的なフォーマットが最初に列挙されています。

  • 読み取り操作では常に RGB および RGBA 形式でピクセルを出力できます。
  • コーデックによっては、さらに大きな形式のリストでピクセルを出力できるものもあります。
  • ほとんどのコーデックは SOURCE ピクセルも出力できます。これは、たとえば、CMYK または YCCK 画像から完全な情報を取得したい場合に便利です。
  • ICC プロファイルの読み取りと書き込み。
  • C、Qt、SDL の例。
  • サポートされているプラ​​ットフォーム:
    Windows (インストーラー)、macOS (brew)、Linux (Debian)。

SAIL が提供しないもの:

  • 画像編集;
  • 基盤となるコーデック (libjpeg など) によって提供されるもの以外の色空間変換関数。
  • カラーマネージメント機能(ICCプロファイルの利用など)

C でのデコードの最も単純な例:

構造体セイルコンテキスト *コンテキスト;

SAIL_TRY(sail_init(&context));

構造体セイルイメージ *イメージ;
unsigned char *image_pixels;

SAIL_TRY(sail_read(パス,
環境、
&画像、
(void **)&image_pixels));

/*
※ここでは受信したピクセルを処理します。
* これを行うには、image->width、image->height、image->bytes_per_line、を使用します。
* および画像 -> ピクセル形式。
*/

/* 掃除 */
無料(画像ピクセル);
セイル_デストロイ_イメージ(画像);

API レベルの簡単な説明:

  • 初心者: 「この JPEG をダウンロードしたいだけです」
  • 上級: 「このアニメーション GIF をメモリからロードしたい」
  • 深海ダイバー: 「このアニメーション GIF をメモリからロードして、選択したコーデックとピクセル出力を完全に制御したいと考えています。」
  • テクニカル ダイバー: 「上記のすべてと独自のデータ ソースが欲しいです。」

同じ地域の直接の競合他社:

  • 悪魔
  • SDL_画像
  • WIC
  • imlib2
  • ブースト.GIL
  • gdk-pixbuf

他のライブラリとの違い:

  • 期待されるエンティティ (画像、パレットなど) を備えたヒューマン API。
  • ほとんどのコーデックは、RGB/RGBA ピクセル以外のピクセルも出力できます。
  • ほとんどのコーデックは、RGB に変換せずに元のピクセルを出力できます。
  • コーデックは任意の言語で作成でき、プロジェクト全体を再コンパイルせずに追加/削除することもできます。
  • 元の画像に関する情報を保持します。
  • 「プロービング」とは、ピクセル データをデコードせずに画像に関する情報を取得するプロセスです。
  • サイズと速度。

出所: オープンネット.ru

コメントを追加します