Picture von Image Drucken



  • Also wenn ich das so ausprobiere Druckt der mir eine Leere Seite in der hilfe hab ich gelesen das methoden wie Draw von manchen Druckern nicht unterstützt werden, TextOut funktioniert im gegensatz dazu. Gibt es noch eine andere möglichkeit ein bild zu drucken?



  • Das Bild dürfte zu klein sein-> Bildschirm 96 dpi -> Drucker 1200 dpi



  • Also ich habe ein 500 x 500 pixel grosses image opjekt welches ich mit canvas stellenweise ausmahle, wenn ich die größe noch irgendwie kovertiren muss weiß ich nicht wie 😕



  • Hallo

    TCanvas::StretchDraw anstelle von Draw.

    bis bald
    akari



  • Kannst du das genauer erläutern ich hab damit rumprobiert alerdings funktioniert das bei mir nicht so richtig es wird maximal eine leere seite ausgedruckt ich weiß einfach nicht welche parameter ich da einsetzten muss



  • ok könnte mir jemand helfen?
    Und die StretchDraw funktion erklären ich weiß nicht wie man diese anwenden muss, auch die hilfe hat mir nich geholfen bin in diesem bereich noch echter noob.



  • void __fastcall StretchDraw(const TRect &Rect, TGraphic* Graphic);

    Die Grafik, die in TGraphic* Graphic steckt wird in der Größe von TRect gezeichnet.

    Zum Thema Rechtecke:

    http://www.marquardtnet.info/cecke/quickies.1/1_quicky_41.html

    Mehr bleibt doch erstmal nicht zu sagen, ohne weitere Angaben.

    "Geht nicht", "kann ich nicht" sind so keine Fehlermeldungen



  • Danke schon mal 🙂 du hast recht sollte wirklich mehr angaben machen ich beschreibs mal ganz genau:
    so ich hab ein Image (Image1) dieses wird dann mit canvas linien "bemahlt" anschlißend soll man dieses Bild ausdrucken können. Mit

    TPrinter *Prntr=Printer();
      Prntr->BeginDoc();
      Prntr->Canvas->Draw(200 ,200,Image1->Picture->Graphic);
      Prntr->EndDoc();
    

    von oben klappt das ausdrucken allerdings viel zu klein dafür dann die StretchDraw funktion allesdings weiß ich wirdlich nicht was das "const TRect &Rect" da bedeutet nur da es was mit rechteck zu tun hat, was muss ich den da angeben?

    Prntr->Canvas->StretchDraw(????,Image1->Picture->Graphic);
    

    wäre meine ideedie nicht funktioniert



  • Na die Größe die die Grafik vergrößert haben soll. Also jetzt ist die Grafik x breit und y groß und wird an 200,200 gezeichnet.

    Also nehmen wir an deine Grafik ist x = 50 und y = 100 groß und soll doppelt so groß werden:

    TRect re(200,200,300,400);

    200,200 Position
    300=502+Ausgangsposition
    400=100
    2+Ausgangsposition

    Prntr->Canvas->StretchDraw(re,Image1->Picture->Graphic);



  • accccchhhhhhhssssssoooo
    vielen dank 🙂 👍



  • Ich habe dazu auch mal ne Frage.
    Ich möchte eine Grafik ausdrucken, diese soll aber oben,rechts,unten,links je einen bestimmten eingestellten Zentimeter Rand haben.
    Natürlich soll die Grafik ihre Dimension behalten und nicht verzerrt werden. Wie komme ich an den Randwert für ARect in StretchDraw ?



  • rechne die zentimeter doch in pixel um und passe das rechteck entsprechend an.



  • pagewidth = Prntr->PageWidth; sagt 4799
    width = GetDeviceCaps(Prntr->Handle, LOGPIXELSX) sagt 600
    scalex = GetDeviceCaps(Prntr->Handle, LOGPIXELSX) / PixelsPerInch; sagt 6

    Wie bekomme ich denn heraus welche Blattgrösse gewählt wurde? Ich kann den Rand ja in kein Verhältnis setzen, wenn ich die Blattgrösse in Zentimeter garnicht kenne. 😕


Anmelden zum Antworten