Autor Beitrag
Baaer
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Fr 28.06.02 13:35 
Hallo,
ich habe im moment diese Prozedur mit Bmps. Wie funktioniert das mit Jpgs? Desweiteren gibt es noch ein Problem mit der Größe der ausgedruckten Bilder. Die Bmps haben eine Auflösung von 2048 *1536, jedoch sind diese beim Ausdrucken nur ca. 6,5cm* 8.6cm. Die Bilder sollten im Klassischenfotoformat 9*13 oder größer ausgedruckt werden. 2 bilder pro Seite. Später wollte ich noch Text drunter drucken lassen. Wenn es mit Jpgs genausogut geht dann wäre das besser. Die Bilder müsste ich dann nicht erst umwandeln.

Hier mein Code:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
procedure TForm1.DruckenClick(Sender: TObject);
var   Bmp,Bmp2: TBitmap;
begin
  Bmp := TBitmap.Create;
  Bmp2 := TBitmap.Create;
  try
     Bmp.LoadFromFile('MyBitmap.bmp');
     Bmp2.LoadFromFile('MyBitmap2.bmp');
     with Printer do
     begin
       BeginDoc;
       Canvas.Draw((PageWidth - Bmp.Width) div 2,
                   (PageHeight - Bmp.Height) div 5,
                   Bmp);
       Canvas.Draw((PageWidth - Bmp.Width) div 2,
                   (PageHeight - Bmp.Height) * 4 div 5,
                   Bmp2);
      EndDoc; 
     end; 
  finally 
    Bmp.Free; 
  end;


- Irgendwie übernimmt das Forum hier nicht die äußere Form der Prozedur :( Bischen unübersichtlich so.

Code-Tags hinzugefügt. Tino
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Fr 28.06.02 13:41 
Baaer hat folgendes geschrieben:
Irgendwie übernimmt das Forum hier nicht die äußere Form der Prozedur :( Bischen unübersichtlich so.


Dafür gibt es s.g. Code-Tags! Z. B. so:

[*code]
If a=a Then
;
[*/code]

(ohne die Sternchen)

Schau mal in die Hilfe (Link ist oben rechts)!

Gruß
TINO
Baaer Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Fr 28.06.02 14:03 
Danke,
ich muss nurnoch wissen, wie ich Jpgs direkt drucke, und diese
auch ins passende Format bekomme.
FriFra
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 557

Win XP Prof, Win XP Home,Win Server 2003,Win 98SE,Win 2000,Win NT4,Win 3.11,Suse Linux 7.3 Prof,Suse Linux 8.0 Prof
D2k5 Prof, D7 Prof, D5 Standard, D3 Prof, K3 Prof
BeitragVerfasst: So 30.06.02 22:42 
Zuerst mal der scalierte Ausdruck:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
 ScaleX:=1;
 ScaleY:=1;
 try
 with printer do
  begin
  ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch;
  ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch;
  // Informationen über die Auflösung
  // Retrieves information about the Pixels per Inch of the Printer.
  PR := Rect(0, 0, Image1.picture.Width * scaleX, Image1.Picture.Height * ScaleY);

  BeginDoc;
  Canvas.StretchDraw(PR,PImg.Picture.Bitmap);
  EndDoc;
  end;
 except
 MessageDlg('Es wurde kein Drucker gefunden!',mtError,[mbOK],0);
 end;


so wandelst Du JPG's in BMP's um:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
var 
  myjpg: TJPEGImage; 
  mybmp:  TBitmap; 
begin 
  myjpg := TJPEGImage.Create; 
  try 
    myjpg.CompressionQuality := 100;
    myjpg.LoadFromFile(FileName); 
    mybmp := TBitmap.Create; 
    try 
      mybmp.Assign(myjpg); 
      mybmp.SaveTofile(ChangeFileExt(FileName, '.bmp')); 
    finally 
      mybmp.Free 
    end; 
  finally 
    myjpg.Free 
  end; 
end;


Du brauchst ja das bmp nicht zu sichern, sondern kannst es direkt ausdrucken....