Einzelnen Beitrag anzeigen

Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: x Bilder einheitlich skaliert auf drittes Bild zeichen

  Alt 22. Apr 2013, 10:26
Darauf hatte ich gar nicht geachtet, da von Rotation ursprünglich keine Rede war.
Mit einem Umweg über ein Bitmap geht es:

Delphi-Quellcode:
Procedure LoadAndPaint(FileName: String; C: TCanvas; x, y, BH: Integer;BitMapTransparent:Boolean=false);
var
  G,G2: TGraphic;
  SC: Integer;
begin
  if UpperCase(ExtractFileExt(FileName)) = '.PNGthen
  begin
    G := TPngImage.Create;
  end
  else if UpperCase(ExtractFileExt(FileName)) = '.BMPthen
    begin
      G := TBitMap.Create;
      if BitMapTransparent then TBitMap(G).Transparent := true;
    end
  else if UpperCase(ExtractFileExt(FileName)) = '.GIFthen
    G := TGifImage.Create
  else if (UpperCase(ExtractFileExt(FileName)) = '.JPG') or (UpperCase(ExtractFileExt(FileName)) = '.JPEG') then
    G := TJpegImage.Create
  else raise ENotImplemeted.Create('Nicht berücksichtigtes Dateiformat');

  G2 := TBitmap.Create;
  try
    G.LoadFromFile(FileName);
    G2.Assign(G);
    G2.Transparent := BitMapTransparent;
    SC := G.Width;
    if G.Height > G.Width then
      SC := G.Height;
    SetCanvasZoomAndRotation(C, BH / SC, 0, x, y);
    C.Draw(0, 0, G2);
    SetCanvasZoomAndRotation(C , 1, 0, 0,0);
  finally
    G.Free;
    G2.Free;
  end;
end;
Angehängte Dateien
Dateityp: zip Demo.zip (44,5 KB, 6x aufgerufen)
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat