⚠️ これは 非公式の翻訳サイトです。DCMTK / OFFIS とは無関係です。正確な情報は 原文(https://support.dcmtk.org/docs/mod_dcmjpeg.html) を参照してください。

dcmjpeg: JPEG 圧縮・展開ライブラリとユーティリティアプリ群

本モジュールには、DICOM 画像オブジェクトの非圧縮表現と JPEG 圧縮表現(転送構文)を相互に変換するクラスが含まれる。可逆(lossless)・非可逆(lossy)の両方の JPEG プロセスに対応する。本モジュールは DcmCodec クラスから派生したコーデック群を実装しており、これらは dcmdata モジュールが管理するコーデックリストに登録できる。

主なインターフェースクラスは次のとおりです。

ツール

このモジュールには次のコマンドラインツールが含まれます。

例

次の例は、可逆 JPEG で DICOM 画像ファイルを圧縮する方法を示す:

DJEncoderRegistration::registerCodecs(); // register JPEG codecs
DcmFileFormat fileformat;
if (fileformat.loadFile("test.dcm").good())
{
 DcmDataset *dataset = fileformat.getDataset();
 DcmItem *metaInfo = fileformat.getMetaInfo();
 DJ_RPLossless params; // codec parameters, we use the defaults

 // this causes the lossless JPEG version of the dataset to be created
 if (dataset->chooseRepresentation(EXS_JPEGProcess14SV1, &params).good() &&
      dataset->canWriteXfer(EXS_JPEGProcess14SV1))
  {
 // store in lossless JPEG format
    fileformat.saveFile("test_jpeg.dcm", EXS_JPEGProcess14SV1);
  }
}
DJEncoderRegistration::cleanup(); // deregister JPEG codecs

次の例は、JPEG 圧縮された DICOM 画像ファイルを展開する方法を示す:

DJDecoderRegistration::registerCodecs(); // register JPEG codecs
DcmFileFormat fileformat;
if (fileformat.loadFile("test_jpeg.dcm").good())
{
 DcmDataset *dataset = fileformat.getDataset();

 // decompress data set if compressed
 if (dataset->chooseRepresentation(EXS_LittleEndianExplicit, NULL).good() &&
      dataset->canWriteXfer(EXS_LittleEndianExplicit))
  {
    fileformat.saveFile("test_decompressed.dcm", EXS_LittleEndianExplicit);
  }
}
DJDecoderRegistration::cleanup(); // deregister JPEG codecs