Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi gedruckte Grafik total verpixelt und verschwommen (https://www.delphipraxis.net/94389-gedruckte-grafik-total-verpixelt-und-verschwommen.html)

MW880729 20. Jun 2007 20:50


gedruckte Grafik total verpixelt und verschwommen
 
Hallo zusammen,

habe zwar nun geschafft, dass die Grafik gedruckt wird, was auch soweit ganz gut ist, jedoch ist die Grafik total verpixelt und verschwommen nach dem Druck. Die Bitmap datei ist allerdings in Ordnung.

Hier mal der Quellcode mit dem ich das Drucken leite:
Delphi-Quellcode:
procedure PrintImage(iLeft, iTop: integer; Img: TImage);
var
  GraphicRect: TRect;
begin
  iLeft := iLeft * 8;
  iTop := iTop * 8;
  ZeroMemory(@GraphicRect, SizeOf(GraphicRect));
  GraphicRect.Right:= Img.Picture.Graphic.Width;
  GraphicRect.Bottom:= Img.Picture.Graphic.Height;
  if Form2.PrintDialog1.Execute then
  begin
     printer.begindoc;
     printer.Canvas.CopyRect(Rect(iLeft, iTop, iLeft+ GraphicRect.Right* 10, iTop+ GraphicRect.Bottom* 10), Img.Canvas, GraphicRect);
     printer.enddoc;
  end;
end;

procedure TForm2.Button14Click(Sender: TObject);
begin
   Image1.Picture.loadfromfile(ExtractFilePath(Application.ExeName) + 'MyPic.bmp');
   PrintImage(200,20,image1);
end;
Kann mir jemand sagen, weshalb das so verpixelt und verschwommen gedruckt wird??

Danke schonmal!

Gruß,
Manu

MW880729 21. Jun 2007 22:01

Re: gedruckte Grafik total verpixelt und verschwommen
 
Hallo,

Hat denn niemand eine Lösung für mein Problem hier??

Würde mich freuen, wenn jemand antworten würde und das vielleicht helfen würde ...

Danke schonmal, für eure bemühungen eine Lösung zu finden.

Gruß,
Manu

dizzy 21. Jun 2007 23:15

Re: gedruckte Grafik total verpixelt und verschwommen
 
Da du nix besonderes im Code machst, würde ich einfach darauf tippen, dass deine Grafik zu niedrig aufgelöst ist.

MW880729 22. Jun 2007 06:52

Re: gedruckte Grafik total verpixelt und verschwommen
 
Zitat:

Zitat von dizzy
Da du nix besonderes im Code machst, würde ich einfach darauf tippen, dass deine Grafik zu niedrig aufgelöst ist.

Habe eine 32Bit - bmp-Datei, die ich vom Originalzustand schon stark verkleinert habe .... hier aufm Bildschirm sieht das Bild auch echt gut aus ... Nur im gedruckten Zustand leider nicht ...

Gruß,
Manu

Tormentor32 22. Jun 2007 07:37

Re: gedruckte Grafik total verpixelt und verschwommen
 
Liegts vielleicht am Drucker? Andere ausgedruckte Bilder (bzw. mit anderen Programmen ausgedruckte) sehen normal aus?

turboPASCAL 22. Jun 2007 07:38

Re: gedruckte Grafik total verpixelt und verschwommen
 
Und das Verkleinern wird auch der Grund sein wieso das Bild so verwurstelt aussieht nach
dem Drucken. ;)
Das es sich bei dem Bild um eine 32Bit -Bitmap handelt is egal, die Grösse ist wichtig.

Das Bild vergrössert du ja dann auch noch in der Printfunktion.

Code:
printer.Canvas.CopyRect(Rect(iLeft, iTop, iLeft+ GraphicRect.Right[color=#ff0000]* 10[/color], iTop+ GraphicRect.Bottom[color=#ff0000]* 10[/color]), Img.Canvas, GraphicRect);

SirThornberry 22. Jun 2007 10:07

Re: gedruckte Grafik total verpixelt und verschwommen
 
CopyRect stretched das Bild ohne Verwendung von Halftone. Daher auch das verpixeln.

MW880729 22. Jun 2007 17:10

Re: gedruckte Grafik total verpixelt und verschwommen
 
Zitat:

Zitat von Tormentor32
Liegts vielleicht am Drucker? Andere ausgedruckte Bilder (bzw. mit anderen Programmen ausgedruckte) sehen normal aus?

Habe es mit verschiedenen Druckern ausprobiert. Am Drucker liegts nicht.

MW880729 22. Jun 2007 17:10

Re: gedruckte Grafik total verpixelt und verschwommen
 
Zitat:

Zitat von turboPASCAL
Und das Verkleinern wird auch der Grund sein wieso das Bild so verwurstelt aussieht nach
dem Drucken. ;)
Das es sich bei dem Bild um eine 32Bit -Bitmap handelt is egal, die Grösse ist wichtig.

Das Bild vergrössert du ja dann auch noch in der Printfunktion.

Code:
printer.Canvas.CopyRect(Rect(iLeft, iTop, iLeft+ GraphicRect.Right[color=#ff0000]* 10[/color], iTop+ GraphicRect.Bottom[color=#ff0000]* 10[/color]), Img.Canvas, GraphicRect);

Zitat:

Zitat von SirThornberry
CopyRect stretched das Bild ohne Verwendung von Halftone. Daher auch das verpixeln.

Schätze das wird es sein, ich versuchs mal - danke euch !!

Gruß,
Manu

MW880729 22. Jun 2007 18:52

Re: gedruckte Grafik total verpixelt und verschwommen
 
Zitat:

Zitat von turboPASCAL
Das Bild vergrössert du ja dann auch noch in der Printfunktion.

Gibts denn ne Möglichkeit, das Bild in 147x45 Pixel zu drucken, ohne dass es so verwurstelt wird ??

Danke schonmal!

Gruß,
Manu

DeddyH 22. Jun 2007 18:56

Re: gedruckte Grafik total verpixelt und verschwommen
 
Ein Blick in die Suche hat u.a. dies hier zu Tage gefördert. :zwinker:

MW880729 22. Jun 2007 19:09

Re: gedruckte Grafik total verpixelt und verschwommen
 
Zitat:

Zitat von DeddyH
Ein Blick in die Suche hat u.a. dies hier zu Tage gefördert. :zwinker:


Alles klar, danke dir - bin schon nen bissl müde ;)

Gruß,
Manu

MW880729 22. Jun 2007 19:20

Re: gedruckte Grafik total verpixelt und verschwommen
 
Okay, leider wieder nix ....

Also, ich versuchs nochmal zu erklären:

Ich habe hier ein Bild, das Original etwa 1000x300 Pixel groß war.
Dieses habe ich verkleinert abgespeichert (147x45 Pixel).

Dieses schon verkleinerte Bild lade ich nun in Image1 und will dieses ausdrucken. Leider druckt diese Funktion das Image immer nur sehr sehr klein aus.

Ich würde es aber gerne in Originalgröße ausdrucken (147x45 Pixel) und das auf einem Blatt Papier platzieren. Klingt einfach - ich Stretche es einfach .... Nur leider wird es dann verpixelt und verschwommen ....

Die Funktion ResizeImage (der letzte Link) ändert die größe eines Bildes, aber es ist ja schon in der größe wie es auch gedruckt werden soll, bringt mir also nichts.

Wie kann ich das Bild nun in Originalgröße ausdrucken, ohne dass es verpixelt wird ??

Danke schonmal ...

Gruß,
Manu

DeddyH 22. Jun 2007 19:45

Re: gedruckte Grafik total verpixelt und verschwommen
 
Die Pixelangabe sagt ja nichts darüber aus, wie groß das Bild auf dem Drucker ausgegeben wird. Stell doch mal die Druckerauflösung niedriger ein, dann wird das Bild größer ;)

MW880729 22. Jun 2007 20:48

Re: gedruckte Grafik total verpixelt und verschwommen
 
Zitat:

Zitat von DeddyH
Die Pixelangabe sagt ja nichts darüber aus, wie groß das Bild auf dem Drucker ausgegeben wird. Stell doch mal die Druckerauflösung niedriger ein, dann wird das Bild größer ;)

Das Problem ist, dass ich an die Druckerauflösung nic ran komm - das soll hinterher nich auf meinem Drucker gedruckt werden - oder gibts ne Möglichkeit, das mit Delphi zu machen und danach wieder zurück zu stellen ??

Danke schonmal.

Gruß,
Manu

DeddyH 22. Jun 2007 20:55

Re: gedruckte Grafik total verpixelt und verschwommen
 
Du könntest mittels SetMapMode die Ausgabe auf 1/10 bzw. 1/100 Millimeter umstellen und wärst somit unabhängig von der Druckerauflösung. Bemühe mal dazu die Forensuche.

MW880729 22. Jun 2007 21:01

Re: gedruckte Grafik total verpixelt und verschwommen
 
Zitat:

Zitat von DeddyH
Du könntest mittels SetMapMode die Ausgabe auf 1/10 bzw. 1/100 Millimeter umstellen und wärst somit unabhängig von der Druckerauflösung. Bemühe mal dazu die Forensuche.


Alles klar, ich schau mal! Ich danke dir!!

Gruß,
Manu

dizzy 23. Jun 2007 08:48

Re: gedruckte Grafik total verpixelt und verschwommen
 
Zitat:

Zitat von MW880729
Wie kann ich das Bild nun in Originalgröße ausdrucken, ohne dass es verpixelt wird ??

Indem du das Originalbild auf dem Drucker ausgibst, und nicht das verkleinerte ;). Ein so kleines Bild würde auf einem Drucker erst einigermaßen gut aussehen, wenn es max 3cm breit ist. Das ist viel zu klein für nen brauchbaren Druck.

MW880729 23. Jun 2007 10:51

Re: gedruckte Grafik total verpixelt und verschwommen
 
Zitat:

Zitat von dizzy
Zitat:

Zitat von MW880729
Wie kann ich das Bild nun in Originalgröße ausdrucken, ohne dass es verpixelt wird ??

Indem du das Originalbild auf dem Drucker ausgibst, und nicht das verkleinerte ;). Ein so kleines Bild würde auf einem Drucker erst einigermaßen gut aussehen, wenn es max 3cm breit ist. Das ist viel zu klein für nen brauchbaren Druck.

Du verstehst mich falsch - ich gebe das Originalbild auf dem Drucker aus, es kommt aber trotzdem in der Auflösung 30x10Pixel raus ......

Gruß,
Manu

DGL-luke 23. Jun 2007 10:59

Re: gedruckte Grafik total verpixelt und verschwommen
 
stimmt, denn CopyRect skaliert nicht.

Trotzdem sollte die Lösung des Problems in MSDN-Library durchsuchenSetMapMode liegen.

Denn damit kannst du einstellen, wie viele Millimeter/Inches ein Pixel deiner Grafik auf dem Ausdruck haben soll.

bitsetter 23. Jun 2007 12:03

Re: gedruckte Grafik total verpixelt und verschwommen
 
Zitat:

Zitat von MW880729
Ich habe hier ein Bild, das Original etwa 1000x300 Pixel groß war.
Dieses habe ich verkleinert abgespeichert (147x45 Pixel).

Wenn du ein großes Bild verkleinert abspeicherst, geht es natürlich auf Kosten der Qualität. Dann ist es kein Wunder, dass es beim Ausdrucken pixelig wird. Ich würde jedenfalls mit dem Originalbild arbeiten.

Ansonsten vergrößere doch das Originalbild auf 1470X450 und drucke es dann ganz normal mit
Delphi-Quellcode:
Printer.BeginDoc;
Printer.Canvas.Draw(0, 0, Image1.Picture.Graphic);
Printer.EndDoc;
ohne copyrect() aus.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:03 Uhr.

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