AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DBImage mit printpdf darstellen

Ein Thema von tom_po · begonnen am 5. Feb 2006 · letzter Beitrag vom 10. Mär 2006
Antwort Antwort
Seite 2 von 2     12   
tom_po

Registriert seit: 5. Feb 2006
137 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: DBImage mit printpdf darstellen

  Alt 6. Feb 2006, 19:48
hier das Originalbild, ein ScreenPrint von meiner Delphi-application
Miniaturansicht angehängter Grafiken
bildoriginal_211.jpg  
  Mit Zitat antworten Zitat
tom_po

Registriert seit: 5. Feb 2006
137 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: DBImage mit printpdf darstellen

  Alt 6. Feb 2006, 19:51
Hab's jetzt mal noch mit den anderen 2 Print-Procedures probiert. Funktioniert immer jetzt der Ausdruck, aber bei allen 3 Formen ist das Bild in die Länge verzerrt!

Delphi-Quellcode:
begin
 img := TImage.Create(nil);
  try
    Img.Picture.Bitmap.Assign(DBImage1.Picture.Bitmap);
    printpdf1.ImageOut(100,1100,Img);
    //printpdf1.ImageOut(100,1100,TImage(Img));
    //printpdf1.draw(100,1050, img);
  finally
    img.Free;
  end;
end;
Hast du noch ne Idee? Hat es mit dem Font zu tun? Hier der Font, den ich kurz vorher für die Memo verwende, die beim Ausdruck noch vor dem Bild kommt:

Delphi-Quellcode:
printpdf1.Font.Name:=poHelveticaBold;
printPDF1.Font.Size:=20;
printPDF1.MemoOut(50,940, Memo1);
Wie findest du ansonsten die tnpdf-Komponente?

Mit deinem Verlaub, sende ich an Nishita diesen Hinweis, er bittet ja in seinem Readme-File um Verbesserungen seiner Komponente. Ist dies ok für Dich, Marabu?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

Re: DBImage mit printpdf darstellen

  Alt 6. Feb 2006, 20:08
Das Polo Shirt sieht ja aus, als wäre es bei 3.000 Umdrehungen geschleudert worden. Allerdings bevorzuge ich Hemden mit Überlänge. Wenn es wirklich dasselbe Shirt sein sollte, dann vermute ich, dass PrintPDF mit anderen Auflösungen arbeitet, als der Bildschirm. Ich könnte mir vorstellen, dass eine Vorbehandlung des Bildes im Hinblick auf die Ausgabe dem Effekt gegensteuern könnte. Und was die drei Zeilen für Nishita angeht - ich bin mir fast sicher, er wird kurz lächeln, wenn er deine Nachricht liest. Meinen Segen hast du.

Freundliche Grüße

marabu
  Mit Zitat antworten Zitat
tom_po

Registriert seit: 5. Feb 2006
137 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: DBImage mit printpdf darstellen

  Alt 6. Feb 2006, 20:16
Habe mich gekrümmt vor Lachen, jetzt wäre fast ich vom Stuhl gefallen...

Warum soll Nishita lachen? mal im Ernst...es hat ja gefehlt und zu dem nullpointer-Exception geführt...
Ok, bin halt noch totaler Laie...

Würdest du eigentlich das printpdf1.draw dem printpdf1.imageout vorziehen? beides funktioniert anscheinend gleich, das heisst der heisse Waschvorgang verzieht bei beiden das Polo!!
Was ist der Unterschied zwischen beiden procedures?
  Mit Zitat antworten Zitat
tom_po

Registriert seit: 5. Feb 2006
137 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: DBImage mit printpdf darstellen

  Alt 6. Feb 2006, 20:26
habe jetzt das Bild aus der Datenbank auf die Hälfte "zusammengestaucht" und dann ein einigermassen passables Ergebnis bekommen.

Jedoch für den Anwender gefällt mir die Lösung noch nicht...

kann man das im tnpdf nirgendwo beeinflussen?
Miniaturansicht angehängter Grafiken
bildoriginal2_131.jpg  
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#16

Re: DBImage mit printpdf darstellen

  Alt 6. Feb 2006, 20:33
Lachen wird Nishita wahrscheinlich nicht - aber lächeln. Wenn er noch was mit Delphi macht, dann weiß er, dass diese Zeilen Fehlen. Ich habe durch das einfügen nur dafür gesorgt, dass der fehlerfreie Zweig in SetBitmap() durchlaufen wird. Und Draw() ist nur eine Kapsel für ImageOut() - vielleicht war der Autor etwas unentschlossen bei der Namensgebung und hat dann einfach beides vorgesehen. Nimm ImageOut() und spare ein paar CPU-Zyklen.

Was die Vorbehandlung des Bildes angeht, so solltest du die Pixeldichte ermitteln und ins Verhältnis setzen. Vielleicht nützt dir dabei StretchBlt() - schau mal in die Online Hilfe zum Win32 SDK. Da gibt es auch Kapitel zum Stretchen von Bildern. Oder suche mal hier in der DP.

marabu
  Mit Zitat antworten Zitat
Ralf Stehle

Registriert seit: 8. Aug 2003
124 Beiträge
 
Delphi 7 Professional
 
#17

Problem mit der Bildauflösung: DBImage mit printpdf

  Alt 10. Mär 2006, 00:39
Ich weiß nicht ob sich noch jemand mit dem Thema beschäftigt. Ich habe die vorherigen Beispiele getestet und bin ganz glücklich mit Twain und printpdf ein Programm zu erstellen, welchese Textdokumente einscannt und als PDF speichert

Nur: je nach gewählter Auflösung beim Scannen passt das Bild nicht mehr in die DinA4-Seite.

Ich habe herausgefunden, dass diese Funktion die Größe berechnet. Was muss ich tun, damit hier immer eine DinA4-Seite herauskommt?

Delphi-Quellcode:
procedure TPrintPDF.ImageOut(X, Y: Integer; ABitmap:TImage);
var tempsx,tempsy:double;
begin

tempsx:=((PageWidth)/(WinProcs.GetDeviceCaps(GetDC(0), LOGPIXELSX)*8));
tempsy:=((PageHeight)/(WinProcs.GetDeviceCaps(GetDC(0), LOGPIXELSY)*10.625));

NumberofImages:=NumberofImages+1;
StreamWriteStr(TempStream,'q');
StreamWriteStr(TempStream,IntToStr(trunc(ABitmap.Picture.Bitmap.Width*tempsx))+
' 0 0 '+IntToStr(trunc(ABitmap.Picture.Bitmap.Height*tempsy))+
 ' '+IntToStr(X)+' '+IntToStr(PageHeight-Y-trunc(ABitmap.Picture.Bitmap.Height*tempsy))
 +' cm');
StreamWriteStr(TempStream,'/Im'+IntToStr(NumberofImages)+' Do');
StreamWriteStr(TempStream,'Q');
SetBitmap(ABitmap);
end;
Ralf
Angehängte Dateien
Dateityp: zip pdfscanner_120.zip (95,1 KB, 25x aufgerufen)
Ralf Stehle
ralfstehle@yahoo.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:11 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