ImageEn, unit iexBitmaps

TIEMultiBitmap.DuplicateCompressionInfo

TIEMultiBitmap.DuplicateCompressionInfo


Declaration

procedure DuplicateCompressionInfo(IncludePDFInfo: Boolean = False);


Description

Clone the compression information from idx 0 to all indexes.
If IncludePDFInfo=True, PDF page properties are also duplicated.

Note:
 Only relevant if ParamsEnabled = true
 Has no effect in IsVirtual mode

The following properties are duplicated:

General
 BitsPerSample
 SamplesPerPixel

TIFF
 TIFF_Compression
 TIFF_PhotometInterpret
 TIFF_PlanarConf
 TIFF_Orientation
 TIFF_EnableAdjustOrientation
 TIFF_JPEGQuality
 TIFF_JPEGColorSpace
 TIFF_FillOrder
 TIFF_ZIPCompression
 TIFF_StripCount
 TIFF_Normalize32fImages

GIF
-GIF_Interlaced

JPEG
 JPEG_ColorSpace
 JPEG_Quality
 JPEG_DCTMethod
 JPEG_CromaSubsampling
 JPEG_OptimalHuffman
 JPEG_Smooth
 JPEG_Progressive

JPEG2000
 J2000_ColorSpace
 J2000_Rate
 J2000_ScalableBy
 J2000_SubSamplingH
 J2000_SubSamplingV
 J2000_Reduce
 J2000_Quality

PCX
 PCX_Version
 PCX_Compression

BMP
 BMP_Version
 BMP_Compression
 BMP_HandleTransparency

ICO
 ICO_Format

PNG
 PNG_Interlaced
 PNG_Filter
 PNG_Compression

TGA
 TGA_Compressed
 TGA_GrayLevel

PS
 PS_Compression

PDF
 PDF_Compression
 PDF_PaperWidth (if IncludePDFInfo=True)
 PDF_PaperHeight (if IncludePDFInfo=True)
 PDF_PageMargin  (if IncludePDFInfo=True)
 PDF_ImageOptions (if IncludePDFInfo=True)

DICOM
 DICOM_Range
 DICOM_Compression
 DICOM_JPEGQuality
 DICOM_J2000Rate


Examples

// Change the compression method for a TIFF file
MBitmap := TIEMultiBitmap.create;
MBitmap.ParamsEnabled := True;
MBitmap.Read( 'C:\MyImage.tiff' );
MBitmap.Params[ 0 ].TIFF_Compression := ioTIFF_G4FAX;
MBitmap.DuplicateCompressionInfo();
MBitmap.Write( 'C:\OutImage.tiff' );
MBitmap.Free;

// Which is the same as:
MBitmap := TIEMultiBitmap.create;
MParams := TIOMultiParams.create;
MBitmap.Read( 'C:\MyImage.tiff', MParams );
for i := 0 to MBitmap.count do
  MParams[i].TIFF_Compression := ioTIFF_G4FAX;
MBitmap.Write( 'C:\OutImage.tiff', MParams );
MParams.free;
MBitmap.Free;


// Create a multi-frame DICOM image from a source file list
procedure TForm1.CreateMultiDicom(sl: TStrings; SaveFilename: string);
var
  mbmp: TIEMultiBitmap;
  bmp : TIEBitmap;
  i: Integer;
begin
  mbmp := TIEMultiBitmap.Create;

  for i := 0 to sl.count-1 do
  begin
    bmp := TIEBitmap.Create();
    bmp.ParamsEnabled := True;
    bmp.Read(sl[i]);
    mbmp.AppendImage(bmp);
    bmp.Free;
  end;

  // Ensure all frames of DICOM are same size
  for I := 1 to mbmp.Count - 1 do
  begin
    bmp := mbmp.GetTIEBitmap( I );
    bmp.Resample( mbmp.ImageWidth[0], mbmp.ImageHeight[0], rfFastLinear );
    mbmp.ReleaseBitmap( I, True );
  end;

  // Ensure all frames of DICOM have same duplication and pixel format info
  mbmp.DuplicateCompressionInfo();

  mbmp.Write( SaveFilename, ioDICOM );
  mbmp.free;
end;

// Save all pages to PDF (A4) with centered images (and no scaling of small images)
ImageEnMView1.MIO.Params[0].PDF_PaperSize  := iepA4;
ImageEnMView1.MIO.Params[0].PDF_PageMargin := Round( 0.25 * 72 );  // 1/4 inch
ImageEnMView1.MIO.Params[0].PDF_ImageOptions := [iepioShrinkOnly, iepioCentered];
ImageEnMView1.MIO.DuplicateCompressionInfo(TRUE);
ImageEnMView1.MIO.SaveToFilePDF('d:\test.pdf');