Print Page | Close Window

Is there a problem with the replaceImage function?

Printed From: Debenu Quick PDF Library - PDF SDK Community Forum
Category: For Users of the Library
Forum Name: I need help - I can help
Forum Description: Problems and solutions while programming with the Debenu Quick PDF Library and Debenu PDF Viewer SDK
URL: http://www.quickpdf.org/forum/forum_posts.asp?TID=2816
Printed Date: 04 Apr 26 at 7:23AM
Software Version: Web Wiz Forums 11.01 - http://www.webwizforums.com


Topic: Is there a problem with the replaceImage function?
Posted By: kk aw
Subject: Is there a problem with the replaceImage function?
Date Posted: 24 Jan 14 at 4:24PM
My development code for converting embedded images in bmp format to jpg, gif or png is given below. The image replacement function is always returning 0.  Any ideas what I have missed?

I am using version 9.16 of the QuickPDF library.  I use the Imagelib TMultiImage component for the conversion.  The images saved to file are correct.

procedure TMainform.ConvertImage1Click(Sender: TObject);
var
  i,j,n: Integer;
  ImgID, nImgID: Integer;
  ImgCount: Integer;
  ImgName1, ImgName2: string;
  ImgType: Integer;
  ImgConverted: Integer;
  FPrivdir: string;
  FileExt: string;
  FFileName: string;
  retval: Integer;
begin
  Screen.Cursor := crHourGlass;
  FPrivdir:= sm.slashAdd(LmdSysInfo1.TempPath);
  FileExt:= sm.locase(ElcomboBox1.Text);
  ImgConverted:= 0;
  try
    ImgCount := Qp.FindImages;
    j:= ImgCount;
    imgId := QP.GetImageID(j);
    while j > 0 do
      begin
        qp.SelectImage(ImgID);
        ImgType := Qp.ImageType;
        if ImgType = 2 then
          begin
            ImgName1 := FPrivdir + 'PdfImage.bmp';
            ImgName2 := FPrivdir + Format('PdfImage.%s',[FileExt]);
            MultiImage1.ImageName:= '';
            QP.SaveImageToFile(Imgname1);
            MultiImage1.ImageName:= Imgname1;  {This will load the image file}
            If sm.EqualIC(FileExt,'jpg') then
              MultiImage1.SaveAsJpg(ImgName2)
            else if sm.EqualIC(FileExt,'gif') then
              MultiImage1.SaveAsGIF(Imgname2)
            else if sm.EqualIC(FileExt,'png') then
              MultiImage1.SaveAsPNG(Imgname2);
            nImgID:= qp.AddImageFromFile(ImgName2,0);
            retval:= qp.ReplaceImage(ImgID, nImgID);
            If retval = 0 then
              ShowMessage('Image not replaced');
            retval:= qp.ClearImage(ImgID);
            If retval = 0 then
              ShowMessage('Image not cleared');
            Inc(ImgConverted);
          end;
        Dec(j);
        imgId := QP.GetImageID(j);
      end;
    Screen.Cursor := crDefault;
    If ImgConverted > 0 then
      begin
        ShowMessage(Format('%d Embedded images successfully converted',[ImgConverted]));
        FFileName:= FSelectedFile;
        n:= sm.posIC('.pdf', FFileName);
        System.Insert('[IC]',FFileName, n);
        Qp.SaveToFile(FFileName);
      end
    else
      ShowMessage('No image to convert');
  finally
    Screen.Cursor := crDefault;
  end;
end;



Print Page | Close Window

Forum Software by Web Wiz Forums® version 11.01 - http://www.webwizforums.com
Copyright ©2001-2014 Web Wiz Ltd. - http://www.webwiz.co.uk