Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#13

AW: Bild einlesen überprüfen, und neu zusammensetzen

  Alt 13. Feb 2018, 16:32
Ein erster Ansatz. Der Anfang ist halt immer das Schwierigste:
Delphi-Quellcode:
unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.Imaging.jpeg;

type
  TForm2 = class(TForm)
    Image1: TImage;
    procedure Image1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

const
  // Bügelperlen-Steckplatten Höhe
  cHeight = 30;
  // Bügelperlen-Steckplatten Breite
  cWidth = 30;

procedure TForm2.Image1Click(Sender: TObject);
var
  ImageFileName: string;
  TransformedBitmap: TBitmap;
  DestinationRect: TRect;
  OrignialPicture: TPicture;
begin
  OrignialPicture := TPicture.Create;
  try
    // hier muss der Pfad zur Bildatei rein!
    ImageFileName := 'C:\Users\...blablabla';
    OrignialPicture.LoadFromFile(ImageFileName);

    TransformedBitmap := TBitmap.Create;
    try
      TransformedBitmap.SetSize(OrignialPicture.Width, OrignialPicture.Height);

      DestinationRect := Rect(0, 0, cWidth, cHeight);
      TransformedBitmap.Canvas.StretchDraw(DestinationRect, OrignialPicture.Graphic);

      // der Zaubertrick:
      TransformedBitmap.SetSize(cWidth, cHeight);

      // Bild in TImage auf Formular anzeigen:
      Image1.Picture.Assign(TransformedBitmap);

      // auf Farbpaletten, Seitenverhältnis, abspeichern und ausdrucken kommen wir dann zu sprechen, wenn du soweit bist!
    finally
      TransformedBitmap.Free;
    end;
  finally
    OrignialPicture.Free;
  end;
end;

end.
  Mit Zitat antworten Zitat