メインコンテンツまでスキップ

JPG Process

get_orientation_code(stream: Union[str, Path, bytes]) -> Union[ROTATE, None]

jpgencode(img: np.ndarray, quality: int = 90) -> Union[bytes, None]

jpgdecode(byte_: bytes) -> Union[np.ndarray, None]

jpgread(img_file: Union[str, Path]) -> Union[np.ndarray, None]

この一連の関数は、JPG 画像のエンコード、デコード、読み込みをサポートし、EXIF データから画像の向きを自動的に調整する機能も提供します。

説明

  • get_orientation_code:画像の EXIF データから方向情報を抽出し、画像の回転に適したコードに変換します。このステップは、jpgdecodeおよびjpgread関数内で自動的に行われ、読み込まれた画像が正しい向きで表示されるようにします。
  • jpgencode:NumPy 画像配列を JPG 形式のバイト列にエンコードします。jpgencode関数を使用する際は、qualityパラメータを調整することで、画像品質とファイルサイズのバランスを取ることができます。
  • jpgdecode:JPG 形式のバイト列を NumPy 画像配列にデコードし、EXIF データに基づいて画像の向きを調整します。
  • jpgread:ファイルから JPG 画像を読み込み、NumPy 画像配列としてデコードし、EXIF データに基づいて画像の向きを調整します。

パラメータ

jpgencode

  • img (np.ndarray):エンコードする画像配列。
  • quality (int):エンコード品質。1 から 100 の範囲。デフォルトは 90。

jpgdecode

  • byte_ (bytes):デコードする JPG 形式のバイト列。

jpgread

  • img_file (Union[str, Path]):読み込む JPG 画像ファイルのパス。

jpgencode

import numpy as np
import docsaidkit as D

img_array = np.random.rand(100, 100, 3) * 255
encoded_bytes = D.jpgencode(img_array, quality=95)

jpgdecode

decoded_img = D.jpgdecode(encoded_bytes)

jpgread

img_array = D.jpgread('path/to/image.jpg')

追加の説明:TurboJPEG

TurboJPEGは、高速な JPEG 画像処理ライブラリで、画像のエンコード、デコード、圧縮および解凍機能を提供します。jpgencodeおよびjpgdecode関数では、JPEG 画像のエンコードとデコードにTurboJPEGを使用しています。TurboJPEGは、libjpeg-turboの Python ラッパーであり、より高速な画像エンコードとデコードを提供し、さまざまな画像形式をサポートします。

  • 特徴
    • 高効率libjpeg-turboライブラリの高性能機能を活用し、従来の JPEG 処理方法に比べて大幅に高速化されています。
    • 使いやすさ:簡潔で明確な API を提供しており、開発者が簡単に効率的な JPEG 画像処理を実装できます。
    • 柔軟性:さまざまな画像品質や圧縮レベルの設定をサポートし、異なるシナリオでの画像品質とファイルサイズのニーズに対応します。
    • クロスプラットフォーム:Windows、macOS、Linux など、複数の OS でサポートされており、異なる開発環境で使用できます。

インストール後、Python でTurboJPEGを使用してエンコードおよびデコード機能を利用するには、以下のようにします:

from turbojpeg import TurboJPEG

# TurboJPEGインスタンスを初期化
jpeg = TurboJPEG()

# デコード
bgr_array = jpeg.decode(byte_)

# エンコード
byte_ = jpeg.encode(img, quality=quality)