Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bild immer als Bitmap (https://www.delphipraxis.net/107690-bild-immer-als-bitmap.html)

stahli 31. Jan 2008 23:18


Bild immer als Bitmap
 
Hi alle,

ich lade eine bmp- oder jpg-Datei in ein TImage.
Ich möchte aber das Bild immer als Bitmap weiterverarbeiten, damit ich Bildteile in ein anderes Bitmap kopieren kann.
Wie kann ich das am besten umwandeln?
Der Weg über speichern und neu laden würde mir reichen, funktioniert aber leider auch nicht...

Delphi-Quellcode:
uses
  ... jpeg...

  if (OpenPictureDialog1.Execute) then begin
    ImageMain.Picture.LoadFromFile(OpenPictureDialog1.FileName);
    ImageMain.Picture.SaveToFile(Path + 'tmp.bmp');
    ImageMain.Picture.LoadFromFile(Path + 'tmp.bmp');
    ...
  end;

  ImageTmp.Picture.Bitmap.Canvas.CopyRect(DR, ImageMain.Canvas, SR);
Danke
Stahli

Matze 31. Jan 2008 23:35

Re: Bild immer als Bitmap
 
Hallo Stahli,

ich hab's nur schnell runtergetippt:

Delphi-Quellcode:
var
  jpg: TJPEGImage;
  bmp: TBitMap;
begin
  if OpenDialog1.Execute then
  begin
    bmp := TBitMap.Create;
    try
      // JPEG-Bild
      if IsJPEG(OpenDialog1.FileName) then
      begin
        jpg := TJPEGImage.Create;
        try
          jpg.LoadFromFile(OpenDialog1.FileName);

          // die Umwandlung
          bmp.Assign(jpg);
        finally
          FreeAndNil(jpg);
        end;
      end else
      // kein JPEG-Bild (ich setze voraus, dass es dann ein Bitmap ist)
      begin
        bmp.LoadFromFile(OpenDialog1.FileName);
      end;

      // hier hast du nun dein Bitmap und kannst damit weiterarbeiten

    finally
      FreeAndNil(bmp);
    end;
  end;
end;
Die Funktion IsJPEG findest du in der Code-Library.

Grüße

Edits: So runtertippen ist doch nicht ohne. *g*

DP-Maintenance 31. Jan 2008 23:44

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "VCL / WinForms / Controls" nach "Multimedia" verschoben.

stahli 1. Feb 2008 01:33

Re: Bild immer als Bitmap
 
Vielen Dank, hat wunderbar funktioniert :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:47 Uhr.

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