home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 May / CMCD0504.ISO / Software / Freeware / Programare / gdiplusdelphi / demos / Using Image Encoders and Decoders / Creating and Saving a Multiple-Frame Image / Unit1.pas < prev   
Encoding:
Pascal/Delphi Source File  |  2002-02-15  |  2.6 KB  |  92 lines

  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  7.   Dialogs, StdCtrls, GDIPAPI, GDIPOBJ, GDIPUTIL;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     Memo1: TMemo;
  12.     procedure FormCreate(Sender: TObject);
  13.   private
  14.     { Private declarations }
  15.   public
  16.     { Public declarations }
  17.   end;
  18.  
  19. var
  20.   Form1: TForm1;
  21.  
  22. implementation
  23.  
  24. {$R *.dfm}
  25.  
  26. procedure TForm1.FormCreate(Sender: TObject);
  27. var
  28.   encoderParameters: TEncoderParameters;
  29.   parameterValue: TEncoderValue;
  30.   stat: TStatus;
  31.   multi, page2, page3, page4: TGPImage;
  32.   encoderClsid: TGUID;
  33. begin
  34.  
  35.    // An EncoderParameters object has an array of
  36.    // EncoderParameter objects. In this case, there is only
  37.    // one EncoderParameter object in the array.
  38.    encoderParameters.Count := 1;
  39.  
  40.    // Initialize the one EncoderParameter object.
  41.    encoderParameters.Parameter[0].Guid := EncoderSaveFlag;
  42.    encoderParameters.Parameter[0].Type_ := EncoderParameterValueTypeLong;
  43.    encoderParameters.Parameter[0].NumberOfValues := 1;
  44.    encoderParameters.Parameter[0].Value := @parameterValue;
  45.  
  46.    // Get the CLSID of the TIFF encoder.
  47.    GetEncoderClsid('image/tiff', encoderClsid);
  48.  
  49.    // Create four image objects.
  50.    multi := TGPImage.Create('..\..\Media\GrapeBunch.bmp');
  51.    page2 := TGPImage.Create('..\..\Media\Apple.GIF');
  52.    page3 := TGPImage.Create('..\..\Media\Texture1.JPG');
  53.    page4 := TGPImage.Create('..\..\Media\climber.PNG');
  54.  
  55.    // Save the first page (frame).
  56.    parameterValue := EncoderValueMultiFrame;
  57.    stat := multi.Save('MultiFrame.tif', encoderClsid, @encoderParameters);
  58.    if(stat = Ok) then
  59.      memo1.Lines.Add('Page 1 saved successfully.');
  60.  
  61.    // Save the second page (frame).
  62.    parameterValue := EncoderValueFrameDimensionPage;
  63.    stat := multi.SaveAdd(page2, @encoderParameters);
  64.    if(stat = Ok) then
  65.      memo1.Lines.Add('Page 2 saved successfully.');
  66.  
  67.    // Save the third page (frame).
  68.    parameterValue := EncoderValueFrameDimensionPage;
  69.    stat := multi.SaveAdd(page3, @encoderParameters);
  70.    if(stat = Ok) then
  71.      memo1.Lines.Add('Page 3 saved successfully.');
  72.  
  73.    // Save the fourth page (frame).
  74.    parameterValue := EncoderValueFrameDimensionPage;
  75.    stat := multi.SaveAdd(page4, @encoderParameters);
  76.    if(stat = Ok) then
  77.      memo1.Lines.Add('Page 4 saved successfully.');
  78.                         
  79.    // Close the multiframe file.
  80.    parameterValue := EncoderValueFlush;
  81.    stat := multi.SaveAdd(@encoderParameters);
  82.    if(stat = Ok) then
  83.      memo1.Lines.Add('File closed successfully.');
  84.  
  85.    multi.Free;
  86.    page2.Free;
  87.    page3.Free;
  88.    page4.Free;
  89. end;
  90.  
  91. end.
  92.