eDocEngine VCL
Create documents and reports in 18 formats
Compatibility
Delphi C++Builder

Spaß mit dynamischer Bilderzeugung in Delphi

Spaß bei der Arbeit mit eDocEngine VCL
Übersetzung: Thassilo Helmold (English version)

eDocEngine ist eine hervorragende Sammlung von Komponenten, um Textdokumente, Tabellen, Bilddateien und Zwischenablageinhalte zu erstellen. Die Komponenten haben zwar ihre eigene API, können jedoch auch über übliche und damit den meisten Entwicklern bereits bekannte Canvas-Befehle gesteuert werden.

Die eDocEngine kann eingesetzt werden, um alle Arten von dynamischen Bildern zu erzeugen, wie zum Beispiel die Bewegung des DAX als Liniendiagramm. Stattdessen kann man jedoch auch einfach ein bisschen Spaß haben und sich ein Bild aus dem Internet suchen, wie zum Beispiel das folgende Bild, auf dem der Text "This is my protest sign" bereits entfernt wurde:

Mit der JPEG-Engine der eDocEngine wird das Vorlagenbild auf eine "Seite" gezeichnet, die in den Abmessungen denen des Bildes entspricht. Dann wird der eigene Text mit einer leichten Drehung (an die Ausrichtung des Schildes angepasst) darüber gerendert.

Dies ist der Quelltext (benötigt keine Komponenten auf dem Formular):

procedure TForm1.Button1Click(Sender: TObject);
var
  gtJPEGEngine1: TgtJPEGEngine;
  Image1: TJPEGImage;
begin
  // Vorlagenbild laden
  Image1 := TJPEGImage.Create;
  Image1.LoadFromFile('protest.jpg');

  // Eine JPEG-Engine erzeugen
  gtJPEGEngine1 := TgtJPEGEngine.Create(Nil);

  with gtJPEGEngine1 do begin
    Preferences.ShowSetupDialog := false;
    Preferences.OpenAfterCreate := true;
    MeasurementUnit :=  muPixels;

    // JPEG-Encoding Einstellungen setzen
    PixelFormat := pf24bit;
    ProgressiveEncoding := true; // Webfreundlich
    Quality := 80;  // Ein guter Kompromiss

    // Größe der Vorlage übernehmen
    with Page do begin
      PaperSize := Custom;
      Width := Image1.Width;
      Height := Image1.Height;
    end;

    // Textrotation an die Ausrichtung der Vorlage anpassen
    SetTextRotation(5);

    // Erstes Bild
    FileName := 'Protest1.jpg';
    // Schrift einstellen
    Font.Name := 'Comic Sans MS';
    Font.Size := 40;
    Font.Color := clRed;

    BeginDoc;
      // Vorlagenbild zeichnen
      DrawImage(gtRect(0,0, 640, 480), TGraphic(Image1));
      // Text über die Vorlage zeichnen
      TextOut(250,100, 'Stop');
      TextOut(225,200, 'Cartoon');
      TextOut(225,300, 'Violence');
    EndDoc;  // Bild in Datei speichern

    // Zweites Bild
    FileName := 'Protest2.jpg';
    SetTextRotation(5);
    Font.Size := 28;
    Font.Color := clWebBlueViolet;

    BeginDoc;
      DrawImage(gtRect(0,0, 640, 480), TGraphic(Image1));
      TextOut(225,120, 'Save the');
      TextOut(230,220, 'WHALES!');
      TextOut(165,320, 'Collect all of them.');
    EndDoc;

    Image1.Free;
  end;
end;

Und hier ist das Ergebnis:

Ein paar abschließende Hinweise:


Downloads

DISCLAIMER: Die Schildbeschriftungen geben nicht die Meinung von Gnostice wieder. Das Vorlagenbild entstammt einer Seite über lustige Protestschilder.

---o0O0o---

Our .NET Developer Tools
XtremeDocumentStudio .NET

Multi-format document-processing component suite for .NET developers.

PDFOne .NET

A .NET PDF component suite to create, edit, view, print, reorganize, encrypt, annotate, and bookmark PDF documents in .NET applications.

Our Delphi/C++Builder developer tools
XtremeDocumentStudio Delphi

Multi-format document-processing component suite for Delphi/C++Builder developers, covering both VCL and FireMonkey platforms.

eDocEngine VCL

A Delphi/C++Builder component suite for creating documents in over 20 formats and also export reports from popular Delphi reporting tools.

PDFtoolkit VCL

A Delphi/C++Builder component suite to edit, enhance, view, print, merge, split, encrypt, annotate, and bookmark PDF documents.

Our Java developer tools
XtremeDocumentStudio (for Java)

Multi-format document-processing component suite for Java developers.

PDFOne (for Java)

A Java PDF component suite to create, edit, view, print, reorganize, encrypt, annotate, bookmark PDF documents in Java applications.

Our Platform-Agnostic Cloud and On-Premises APIs
StarDocs

Cloud-hosted and On-Premises REST-based document-processing and document-viewing APIs

Privacy | Legal | Feedback | Newsletter | Blog | Resellers © 2002-2017 Gnostice Information Technologies Private Limited. All rights reserved.