Español
Foro

Bild máximo en Druckseite einpassen con el Aspectratio

 

Rainer
Hoefs
¡Hola zusammen,
Yo necesidad veces otra vez Ayuda Comunidad.

Leider muß Yo vorher algo ausholen.
Dabei benutze Yo en el Folgenden esta Begriffe:

Teppichdesign = Es el Mapa de bits con el Muster
Teppichgröße = el reaele Teppichgröße en cm
Druckseite = lt. Profano 680 X 960 Punkte. (6800 X 9600 intern)

El Pixelmaße des Teppichdesigns (z.B. 771x / 1221y) haben nichts con el Teppichgröße a tun, el en diesem Ejemplo 200 * 300 cm ser se el hängt simplemente de el Webmaschine y Webdichte de.

Yo lade el Teppichdesign en una "hPic.Teppichdesign" y berechne encima verschiedenen Vergleichskriterien zwischen el "Aspectratio.Teppichdesign a Aspectratio.Teppichgröße" el Größe uno neuen "hPic.Teppichgröße" en el el "hPic.Teppichdesign" con "DrawSizedPic" hineingeschrieben se. Dabei se grundsätzlich niemals el número el X oder Y vom Teppichdesign verkleinert, pero sólo una el beiden Dimensionen, X oder Y, vergrößert, así lo niemals a Verlust de Bildpunkten, Bildqualität kommt. Das klappt alles wunderbar. El "hPic.Teppichgröße" ha also genau el Seitem-Längenverhältnis el Teppichmaße cm.

Nun möchte Yo el neu erstellte Mapa de bits con el richtigen "Aspectratio.Teppichgröße" en uno Druckseite uno beliebigen Druckers así ausdrucken, el esta máximo seitenfüllend bajo Berücksichtigung el "Aspectratio.Teppichgröße" el Papier kommt. Und genau el bekomme Yo simplemente no hin.

El Procedimiento, el mi Maße para el Mapa de bits con el richtigen Teppichgröße berechnet debería eigentlich auch para esta Berechnung trabajo. Sie empfängt 4 Parámetro, el Teppichbreite cm = "CarpetWidth%", Teppichhöhe cm = "CarpetHeight%", Designbreite pix = "DesignWidth%", Designhöhe pix = "DesignHeight%.

Yo habe ya probiert no el Teppichgröße cm x cm pero el 680 X 960 Pixel el Profano benutzt o internen 6800 X 9600 internen Pixel de Profano einzusetzen.

Weiterhin Yo lo con el echten möglichen Druckerpixel pro Página probiert el con:
HorzSize& = ~GetDeviceCaps(&PDC, ~HORZSIZE)
VertSize& = ~GetDeviceCaps(&PDC, ~VERTSIZE)
ausgelesen voluntad.

Alles ha no Erfolg gebracht. Nun weiß Yo no mehr más. Yo hoffe lo einigermaßen verständlich beschrieben a haben.

Tal vez sabe alguien una solución.

Gracias ya veces en el Voraus.
 $H Windows.ph
Declarar Design2Load$, Design2Write$, NewFileName$, Save2FileName$, OriginalDesign&, File2Convert&
Declarar PictureWidth%, PictureHeight%, CarpetWidthCM%, CarpetHeightCM%, A%, B%, C%, D%, HorzSize&, VertSize&

Proc CalculatePictureSize

    Parámetros CarpetWidth%, CarpetHeight%, DesignWidth%, DesignHeight%
    Declarar DesignAspect!, CarpetAspect!, Mode$
    CarpetAspect! = (CarpetWidth% / CarpetHeight%)
    DesignAspect! = (DesignWidth% / DesignHeight%)

    If CarpetAspect! < 1'Hoch

        If DesignAspect! < 1'Hoch

            If CarpetAspect! < DesignAspect!

                Mode$ = "01"
                PictureWidth% = DesignWidth%
                PictureHeight% = ((DesignWidth% / CarpetWidth%) * CarpetHeight%)

            ElseIf CarpetAspect! = DesignAspect!

                Mode$ = "02"
                PictureWidth% = DesignWidth%
                PictureHeight% = DesignHeight%

            ElseIf CarpetAspect! > DesignAspect!

                Mode$ = "03"'OK
                PictureWidth% = ((DesignHeight% / CarpetHeight%) * CarpetWidth%)
                PictureHeight% = DesignHeight%

            EndIf

        ElseIf DesignAspect! > 1'Quer

            If CarpetAspect! < DesignAspect!

                Mode$ = "04"
                PictureWidth% = DesignWidth%
                PictureHeight% = ((DesignWidth% / CarpetWidth%) * CarpetHeight%)

            EndIf

        EndIf

    ElseIf CarpetAspect! = 1'Quadrat

        If DesignAspect! < 1'Hoch

            Mode$ = "05"
            PictureWidth% = DesignHeight%
            PictureHeight% =  DesignHeight%

        ElseIf DesignAspect! = 1'Quadrat

            Mode$ = "06"
            PictureWidth% = DesignWidth%
            PictureHeight% = DesignHeight%

        ElseIf DesignAspect! > 1'Quer

            Mode$ = "07"
            PictureWidth% = DesignWidth%
            PictureHeight% =  DesignWidth%

        EndIf

    ElseIf CarpetAspect! > 1'Quer

        If DesignAspect! < 1'Hoch

            If CarpetAspect! < DesignAspect!

                Mode$ = "08"
                PictureWidth% = DesignWidth%
                PictureHeight% = ((DesignWidth% / CarpetWidth%) * CarpetHeight%)

            ElseIf CarpetAspect! = DesignAspect!

                Mode$ = "09"
                PictureWidth% = DesignWidth%
                PictureHeight% = DesignHeight%

            ElseIf CarpetAspect! > DesignAspect!

                Mode$ = "10"'OK
                PictureWidth% = ((DesignHeight% / CarpetHeight%) * CarpetWidth%)
                PictureHeight% = DesignHeight%

            EndIf

        ElseIf DesignAspect! > 1'Quer

            If CarpetAspect! < DesignAspect!

                Mode$ = "11"
                PictureWidth% = DesignWidth%
                PictureHeight% = ((DesignWidth% / CarpetWidth%) * CarpetHeight%)

            ElseIf CarpetAspect! = DesignAspect!

                Mode$ = "12"
                PictureWidth% = DesignWidth%
                PictureHeight% = DesignHeight%

            ElseIf CarpetAspect! > DesignAspect!

                Mode$ = "13"
                PictureWidth% = ((DesignWidth% / CarpetHeight%) * DesignHeight%)
                PictureHeight% = DesignHeight%

            EndIf

        EndIf

    EndIf

ENDPROC

Ventana 100, 10 - 1700, 1000
Design2Load$ = LoadFile$(%hwnd, "Datei para konvertieren invitar...","Designs|*.APF;*.BMP;*.JPG;*.PNG;*.GIF",0)'Design auswählen

If Design2Load$ <> ""

    OriginalDesign& = Crear ("HPIC", -1, Design2Load$, 0)'Mapa de bits con Originaldesign redactar
    DrawPic OriginalDesign&, 1, 1; 0'Originaldesign Mostrar
    CarpetWidthCM% = Entrada$("CarpetWidth cm: ", "100", 1)'Tepichbreite abfragen
    CarpetHeightCM% = Entrada$("CarpetHeight cm: ", "100", 1)'Tepichlänge abfragen
    CalculatePictureSize CarpetWidthCM%, CarpetHeightCM%, %bmpx, %bmpy'Neue Designgröße berechnen
    File2Convert& = Crear ("hSizedPic",-1, Design2Load$, PictureWidth%, PictureHeight%, 0)'Design en el neuen Größe redactar
    CLS
    DrawPic File2Convert&, 1, 1; 0'Design con neuer Größe Mostrar
    NewFileName$ = SaveFile$(%hwnd, "Speichere Design como...", "PNG-Expediente (*.PNG)|*.PNG|JPEG-Expediente (*.JPG)|*.JPG|BMP-Expediente (*.BMP)|*.BMP", 1)

    If NewFileName$ <> ""

        SavePic NewFileName$, File2Convert&'Design con neuer Größe como BMP, PNG, JPG speichern

    EndIf

    If MessageBox ("Soll el Design gedruckt voluntad?", "DRUCKEN", 292) = 6

        StartPrint "* " + NewFileName$

        If %printing

            DrawSizedPic File2Convert&, 0, 0, %bmpx/2, %bmpy/2; 0
            EndPrint

        EndIf

    EndIf

    DeleteObject File2Convert&'Das Objeto löschen
    DeleteObject OriginalDesign&'Das Objeto löschen

EndIf

End
 
23.02.2018  
 




H.Brill
Verwende veces Crear("hSizedPic",...) con el
letzten Paraemeter Modus con 1.

Das müßte doch el Bild bajo Berücksichtigung el
Seitenverhältnisse korrekt einpassen.

Außerdem sería Yo en Druckseite todavía el
Seitenränder abziehen. Como ha el Druckertreiber
me auch ya Streiche con me gemacht.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
24.02.2018  
 




Rainer
Hoefs
¡Hola H Brill,
el Mapa de bits el para Drucker geschickt se ha ya el richtigen Dimensionen laut TeppichgrößeCM.

Diese gilt lo en el Druckbereich uno Druckseite correcto einzupassen.

Sollte entonces dein Vorschlag Zwischen Starprint y Endprint passieren?
Auf qué berechne Yo entonces el Edición en el 680 960 oder 6800 9600 oder en el encima GetDeviceCaps errechneten möglichen Druckerpixel?

Verstehe lo así no wirklich.

MfG
 
24.02.2018  
 




H.Brill
Naja, si yo el 680 por 21 (Breite uno Blatt Papieres)
teile, komme I etwa 32 Druckerpixel pro cm. Das gleiche
kommt auch en Höhe uno Blattes fuera. Como sería Yo
ca. 35 Pixel pro Rand abziehen.

Was el Dimensionierung betrifft :

Crear("hSizedPic",...) macht el doch para dich, egal como
groß el Mapa de bits como Expediente es. Das se prozentual entonces
eingepaßt. Das kannst du also ya beim Laden el Mapa de bits
hacer.

Also, Yo sería como veces algo anders dran ir. Mach doch
veces una hPic con 680 -70, 960 -70 . Das Bild malst du en una
Leinwand, also
Static& = Crear("Static",%HWnd, 680, 960)
a Position 35, 35.
Also entonces con
StartPaint Static&
DrawPic Bitmaphnadle, 35, 35, ....
EndPaint
en él dibujar. Como lo sí sólo una Página es, sería Yo el
entonces con WinCopy Static& drucken.

Wäre auch veces una Möglichkeit.

Wenn gewünscht es, el Staticfenster no a sehen, kann
uno lo sí después de el Erstellen con ShowWindow verstecken.
Und después de el Druck simplemente otra vez con DestroyWindow
el Static otra vez liberación.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
24.02.2018  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

4.514 Views

Untitledvor 0 min.
Sebald Grandjean vor 20 Tagen
Stringray05.01.2022
iF31.10.2020
Thomas Zielinski29.08.2019
Más...

Themeninformationen

Dieses Thema ha 2 subscriber:

H.Brill (2x)
Rainer Hoefs (2x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie