/* * * Copyright (C) 2001-2014, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by * * OFFIS e.V. * R&D Division Health * Escherweg 2 * D-26121 Oldenburg, Germany * * * Module: dcmjpeg * * Author: Marco Eichelberg, Norbert Olges * * Purpose: Codec class for encoding JPEG Baseline (lossy, 8-bit) * */ #include "dcmtk/config/osconfig.h" #include "dcmtk/dcmjpeg/djencbas.h" #include "dcmtk/dcmjpeg/djcparam.h" #include "dcmtk/dcmjpeg/djrploss.h" #include "dcmtk/dcmjpeg/djeijg8.h" DJEncoderBaseline::DJEncoderBaseline() : DJCodecEncoder() { } DJEncoderBaseline::~DJEncoderBaseline() { } E_TransferSyntax DJEncoderBaseline::supportedTransferSyntax() const { return EXS_JPEGProcess1; } OFBool DJEncoderBaseline::isLosslessProcess() const { return OFFalse; } void DJEncoderBaseline::createDerivationDescription( const DcmRepresentationParameter * toRepParam, const DJCodecParameter * /* cp */, Uint8 /* bitsPerSample */ , double ratio, OFString& derivationDescription) const { DJ_RPLossy defaultRP; const DJ_RPLossy *rp = toRepParam ? OFreinterpret_cast(const DJ_RPLossy*, toRepParam) : &defaultRP ; char buf[64]; derivationDescription = "Lossy compression with JPEG baseline, IJG quality factor "; sprintf(buf, "%u", rp->getQuality()); derivationDescription += buf; derivationDescription += ", compression ratio "; appendCompressionRatio(derivationDescription, ratio); } DJEncoder *DJEncoderBaseline::createEncoderInstance( const DcmRepresentationParameter * toRepParam, const DJCodecParameter *cp, Uint8 /* bitsPerSample */) const { DJ_RPLossy defaultRP; const DJ_RPLossy *rp = toRepParam ? OFreinterpret_cast(const DJ_RPLossy*, toRepParam) : &defaultRP ; DJCompressIJG8Bit *result = new DJCompressIJG8Bit(*cp, EJM_baseline, OFstatic_cast(Uint8, rp->getQuality())); return result; }