Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Drucken von Bitmaps / Größenanpassung an Druckercanvas / Wie (https://www.delphipraxis.net/26269-drucken-von-bitmaps-groessenanpassung-druckercanvas-wie.html)

mschaefer 21. Jul 2004 09:27


Drucken von Bitmaps / Größenanpassung an Druckercanvas / Wie
 
Moin, Moin,
also heute habe ich ein Problem, wo ich wirklich gnadenlos hänge:

Habe neben Texten auch eine Bitmap auszudrucken. Das ganze wird
auf den Druckercanvas ausgegeben. Mit den Texten ist das auch kein
Problem. Aber die Bitmap macht mir Probleme.

Die Bitmap ist oft höher aufgelöst als der Canvas, muß aber auf
eine definierte Größe Reampled werden. Wie groß die Bitmap selbst
ist weiß ich eigentlich nicht, da der Benutzer diese selbst auswählen
kann.

FRAGE: Wo finde ich etwas zum Resampling von Bitmaps zum Ausdruck ? :?: :wiejetzt:

Viele Grüße // Martin

roderich 21. Jul 2004 09:46

Re: Drucken von Bitmaps / Größenanpassung an Druckercanvas /
 
schau mal unter

http://g32.org

da hab ich eine library für Delphi her, die u.a. Bitmaps resamplen (interpolieren) kann.

Roderich

Steve 21. Jul 2004 10:49

Re: Drucken von Bitmaps / Größenanpassung an Druckercanvas /
 
TCanvas.StretchDraw könnte Dir evtl. auch weiterhelfen.

Gruß
Stephan

mschaefer 21. Jul 2004 18:37

Re: Drucken von Bitmaps / Größenanpassung an Druckercanvas /
 
Danke,

arbeite mich da erst mal ein und melde mich nochmal

Grüße aus dem sommerlichen ( Ha! Ein Tag unterbrechung der Regenzeit) Hannover

// Martin

roderich 22. Jul 2004 09:10

Re: Drucken von Bitmaps / Größenanpassung an Druckercanvas /
 
Zitat:

TCanvas.StretchDraw könnte Dir evtl. auch weiterhelfen.
Fürs erste sicherlich. StretchDraw interpoliert aber nicht, sondern eliminiert oder addiert ganze Zeilen/Spalten. Ein kleines Bild auf einen großen Canvas gestretcht erzeugt starke Treppenstufen.

Die Funktion aus der g32 library kann u.a. interpolieren mit Anti-Aliasing.

Gruß
roderich

mschaefer 22. Jul 2004 11:20

Re: Drucken von Bitmaps / Größenanpassung an Druckercanvas /
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin, moin,

Hier kommt das StretchDraw Beispiel. Ok das ist im weitesten Sinne "HOFFNUNGSLOS".
Aber nichts für ungut Steve, hat geholfen eine Möglichkeit zu eleminieren.
Eigentlich wollte ich ja nur das SW-Bild ausdrucken. Ok Jetzt brauch ich erstmal
ein Beispiel von der G32-Libary....

:gruebel: :gruebel: :gruebel:

Viele Grüße // Martin

Ricane 30. Jul 2004 17:37

Re: Drucken von Bitmaps / Größenanpassung an Druckercanvas /
 
Moinsen,

ich habe ein ähnliches Problem! Ich möchte ein Bild drucken und dann auf diesem Bild noch ein paar Textfelder... Mit diesem Quellcode druckt er das Bild ohne Problem!

Delphi-Quellcode:
  Printer.BeginDoc;
  With Printer.Canvas Do
  Begin
    Rect := Bounds(0, 0, Printer.PageWidth, Printer.PageHeight);
    StretchDraw(Rect, imgObjekt.Picture.Bitmap);
  End;
  Printer.Enddoc;
Wenn ich aber jetzt den Code für das Drucken der Textfelder einbinde, wird das Bild nicht mehr gedruckt, und die Textfelder viel zu klein...

Der code sieht jetzt so aus..... hat jemand eine Ahnung was da falsch läuft?

Delphi-Quellcode:
  Printer.BeginDoc;
  Printer.Canvas.Font.Name := 'MS Sans Serif';
  Printer.Canvas.Font.Height := 8;

  With Printer.Canvas Do
  Begin
    For I := 1 To AnzahlKompos Do
    Begin
      Kompo := FindComponent('Kompo' + IntToStr(I));
      L := (Kompo As TLabel).Left;
      O := (Kompo As TLabel).Top;
      Text := (Kompo As TLabel).Caption;
      TextOut(L, O, Text);
    End;
    Rect := Bounds(0, 0, Printer.PageWidth, Printer.PageHeight);
    StretchDraw(Rect, imgObjekt.Picture.Bitmap);
  End;
  Printer.Enddoc;

Grüsse,

Ricane

Ricane 3. Aug 2004 08:43

Re: Drucken von Bitmaps / Größenanpassung an Druckercanvas /
 
*schieb - schieb*

Kann es vielleicht daran liegen, das man bei den Textfeldern (der "TextOut" Befehl) auch noch eine Art "StretchDraw" ausführen muss, damit diese auch im richtigen Verhältnis stehen, wie das Bild?!

Oder ist es generell nicht möglich beides auf das selbe Papier zu bringen; und dabei natürlich auch noch gestreckt?!


Hoffe irgend jemand weiss da mehr, denn ich bin bereits stark am verzweifeln :|



Ricane

Steve 3. Aug 2004 11:03

Re: Drucken von Bitmaps / Größenanpassung an Druckercanvas /
 
Servus,

die Schrift ist so winzig, weil Du Height statt Size geändert hast.

Versuch mal Folgendes: Erst Grafik, dann alles, was mit Text zu tun hat..
Delphi-Quellcode:
Printer.BeginDoc;
With Printer.Canvas Do
Begin
  StretchDraw(Printer.Canvas.ClipRect, bmp);
  Font.Name := 'MS Sans Serif';
  Font.Size := 8;
  {.. Textausgabe ..}
End;
Printer.Enddoc;
Bei mir gings so dann. Warum's andersum nicht ging, ist mir leider auch nicht ganz klar :wiejetzt:
[edit]Habe als Rect lieber "TCanvas.ClipRect" benutzt.[/edit]

Ich hoffe, Dein Problem ist damit trotzdem (wenigstens teilweise) gelöst :zwinker:

Gruß
Stephan

Ricane 3. Aug 2004 13:17

Re: Drucken von Bitmaps / Größenanpassung an Druckercanvas /
 
Besten Dank!

Kann es leider hier nicht testen (bin noch @ Work...), bin aber schon sehr gespannt ob das funzt....


Beste Grüsse,

Ricane


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:43 Uhr.
Seite 1 von 2  1 2      

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-2025 by Thomas Breitkreuz