Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bitmap in Jpeg umwandeln und mit Image-Komponente ausdrucken (https://www.delphipraxis.net/65752-bitmap-jpeg-umwandeln-und-mit-image-komponente-ausdrucken.html)

Ralf Stehle 20. Mär 2006 21:10


Bitmap in Jpeg umwandeln und mit Image-Komponente ausdrucken
 
Ich möchte mehrere JPG´s nacheinander als PDF-Datei ausdrucken.
Leider bekomme ich immer das gleiche Bild ausgedruckt, in die TPRJpegImage-Komponente lässt
sich anscheinend einfach kein neues Bild laden

Delphi-Quellcode:
procedure TForm1.PrintJpgClick(Sender: TObject);
var
  Rec: TSearchRec;
  bmp :TBitmap;
  jpg :TJPEGImage;
begin
  bmp:=TBitmap.Create;
  jpg:=TJPEGImage.Create;
  PReport1.BeginDoc;           {powerpdf_0.9.zip Komponente}

  if FindFirst('*.bmp', faAnyFile, Rec) = 0 then
  try
  repeat
    if REC.Attr and faDirectory <> faDirectory then
    begin
      bmp.LoadFromFile(Rec.Name);
      jpg.Assign(bmp);
      PRJpegImage1.Picture.Assign(jpg);
      PReport1.Print(PRPage1);  {powerpdf_0.9.zip Komponente}
    end;
    until
      FindNext(Rec) <> 0
    finally
      FindClose(Rec);
    end;

  PReport1.EndDoc;    {powerpdf_0.9.zip Komponente}
end;
wenn ich nach
Delphi-Quellcode:
jpg.Assign(bmp);
jpg.SaveToFile(....);
eingebe, bekomme ich aber korrekt alle Bilder gespeichert. Es muss also an der TPRJpegImage-Komponente liegen, die genauso wie die Standard-Komponente TImage arbeitet

Ralf Stehle 20. Mär 2006 22:48

Re: Bitmap in Jpeg umwandeln und mit Image-Komponente ausdru
 
Das Problem ist gelöst. Andere Delphi-Anwender hatten das Problem auch, die Lösung konnte ich aber im Forum nicht finden

Unter diesen Stichworten wurde schon etwas zu meinem Problem gepostet:
in Google unter:
  • TImage Bild wieder löschen
    TImage oder TQRImage nach Gebrauch freigeben
hier im Forum unterLösung:
Sobald ich die Eigenschaft
Delphi-Quellcode:
 Image1.SharedImage:= false
setze,
kann ich die bilder zur Laufzeit beliebig austauschen,
sonst "vergisst" TImage das zuerst geladene Bild nicht mehr und zeigt dieses immer wieder an

Jetzt funktionieren diese Methoden einwandfrei:

Löschen
Delphi-Quellcode:
Image1.Picture := nil;
neues Bild laden:
Delphi-Quellcode:
Image1.Assign(bitmap)
oder aus datei
Delphi-Quellcode:
Image1.LoadFormFile('C:\bild.bmp')
Das Thema ist für mich somit erledigt


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz