| |
|
|
![Rainer Hoefs: 23.02.2018](.././../../i/a/1508.gif) Rainer Hoefs | allô zusammen, je besoin la fois wieder Aider qui Community.
malheureusement doit je auparavant quelque chose ausholen. Dabei benutze je im Folgenden cet Begriffe:
Teppichdesign = ist qui Bitmap avec dem Muster Teppichgröße = qui reaele Teppichgröße dans cm Druckseite = lt. Profan 680 X 960 Punkte. (6800 X 9600 interne)
qui Pixelmaße des Teppichdesigns (z.B. 771x / 1221y) avons rien avec qui Teppichgröße trop 1faire, qui dans diesem Beispiel 200 * 300 cm son soll cela hängt simple de qui Webmaschine et qui Webdichte ab.
je lade cela Teppichdesign dans un «PCSI.Teppichdesign" et berechne sur verschiedenen Vergleichskriterien entre qui "Aspectratio.Teppichdesign trop Aspectratio.Teppichgröße" qui Taille eines neuen «PCSI.Teppichgröße" dans qui cela «PCSI.Teppichdesign" avec "DrawSizedPic" hineingeschrieben wird. Dabei wird grundsätzlich niemals le nombre qui X ou bien Y vom Teppichdesign verkleinert, mais seulement une qui beiden Dimensionen, X ou bien Y, vergrößert, avec cela es niemals trop perte de Bildpunkten, Bildqualität venez. cela klappt alles wunderbar. qui «PCSI.Teppichgröße" hat alors oui c'est ca cela Seitem-Längenverhältnis qui Teppichmaße cm.
eh bien voudrais je qui récente erstellte Bitmap avec qui richtigen "Aspectratio.Teppichgröße" sur einer Druckseite eines beliebigen Druckers so ausdrucken, cela cet maximum seitenfüllend sous Berücksichtigung qui "Aspectratio.Teppichgröße" sur cela papier venez. et oui c'est ca cela bekomme je es simple pas hin.
qui Procédure, la mienne Maße pour qui Bitmap avec qui richtigen Teppichgröße berechnet devrait eigentlich aussi pour cet Berechnung marcher. vous empfängt 4 paramètre, qui Teppichbreite cm = "CarpetWidth%", Teppichhöhe cm = "CarpetHeight%", Designbreite pix = "DesignWidth%", Designhöhe pix = "DesignHeight%.
j'ai déjà probiert pas qui Teppichgröße cm x cm mais qui 680 X 960 Pixel qui Profan benutzt ou bien qui internen 6800 X 9600 internen Pixel de Profan einzusetzen.
Weiterhin habe je es avec den echten möglichen Druckerpixel pro page probiert qui avec: HorzSize& = ~GetDeviceCaps(&PDC, ~HORZSIZE) VertSize& = ~GetDeviceCaps(&PDC, ~VERTSIZE) ausgelesen volonté.
Alles hat keinen Erfolg gebracht. eh bien sais je pas plus plus. je hoffe es einigermaßen verständlich beschrieben trop avons.
peut-être kennt quelqu'un une Solution.
merci déjà la fois im Voraus.
$H Windows.ph
Déclarer Design2Load$, Design2Write$, NewFileName$, Save2FileName$, OriginalDesign&, File2Convert&
Déclarer PictureWidth%, PictureHeight%, CarpetWidthCM%, CarpetHeightCM%, A%, B%, C%, D%, HorzSize&, VertSize&
Proc CalculatePictureSize
Paramètres CarpetWidth%, CarpetHeight%, DesignWidth%, DesignHeight%
Déclarer DesignAspect!, CarpetAspect!, Mode$
CarpetAspect! = (CarpetWidth% / CarpetHeight%)
DesignAspect! = (DesignWidth% / DesignHeight%)
Si CarpetAspect! < 1'Hoch
Si DesignAspect! < 1'Hoch
Si 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
Si CarpetAspect! < DesignAspect!
Mode$ = "04"
PictureWidth% = DesignWidth%
PictureHeight% = ((DesignWidth% / CarpetWidth%) * CarpetHeight%)
EndIf
EndIf
ElseIf CarpetAspect! = 1'Quadrat
Si 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
Si DesignAspect! < 1'Hoch
Si 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
Si 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
Fenêtre 100, 10 - 1700, 1000
Design2Load$ = LoadFile$(%hwnd, "Datei zum konvertieren magasin...","Designs|*.APF;*.BMP;*.JPG;*.PNG;*.GIF",0)'Design auswählen
Si Design2Load$ <> »
OriginalDesign& = Créer («PCSI», -1, Design2Load$, 0)'Bitmap avec Originaldesign erstellen
DrawPic OriginalDesign&, 1, 1; 0'Originaldesign Montrer
CarpetWidthCM% = Contribution$("CarpetWidth cm: ", "100", 1)'Tepichbreite abfragen
CarpetHeightCM% = Contribution$("CarpetHeight cm: ", "100", 1)'Tepichlänge abfragen
CalculatePictureSize CarpetWidthCM%, CarpetHeightCM%, %bmpx, %bmpy'Neue Designgröße berechnen
File2Convert& = Créer ("hSizedPic",-1, Design2Load$, PictureWidth%, PictureHeight%, 0)'Design dans qui neuen Taille erstellen
CLS
DrawPic File2Convert&, 1, 1; 0'Design avec neuer Taille Montrer
NewFileName$ = SaveFile$(%hwnd, "Speichere Design comme...", "PNG-Dossier (*.PNG)|*.PNG|JPEG-Dossier (*.JPG)|*.JPG|BMP-Dossier (*.BMP)|*.BMP", 1)
Si NewFileName$ <> »
SavePic NewFileName$, File2Convert&'Design avec neuer Taille comme BMP, PNG, JPG Sauver
EndIf
Si MessageBox ("Soll cela Design gedruckt volonté?", "DRUCKEN", 292) = 6
StartPrint "* " + NewFileName$
Si %printing
DrawSizedPic File2Convert&, 0, 0, %bmpx/2, %bmpy/2; 0
EndPrint
EndIf
EndIf
DeleteObject File2Convert&'cela objet effacer
DeleteObject OriginalDesign&'cela objet effacer
EndIf
Fin
|
|
|
| |
|
|
|
![H.Brill: 24.02.2018](.././../../i/a/86.gif) H.Brill | Verwende la fois Créer("hSizedPic",...) avec dem letzten Paraemeter Modus avec 1.
cela devrait doch cela Bild sous Berücksichtigung qui Seitenverhältnisse korrekt einpassen.
Aussi serait je chez qui Druckseite encore qui Seitenränder abziehen. là hat qui Druckertreiber mir aussi déjà Streiche avec mir 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: 24.02.2018](.././../../i/a/1508.gif) Rainer Hoefs | allô H Brill, qui Bitmap qui zum Drucker envoyé wird hat bereits qui richtigen Dimensionen le son TeppichgrößeCM.
cet gilt es dans dem Druckbereich einer Druckseite richtig einzupassen.
Sollte ensuite dein Vorschlag entre Starprint et Endprint passer? sur quoi berechne je ensuite qui Ausgabe sur qui 680 960 ou bien 6800 9600 ou bien sur qui sur GetDeviceCaps errechneten möglichen Druckerpixel?
Verstehe es so pas wirklich.
MfG |
|
|
| |
|
|
|
![H.Brill: 24.02.2018](.././../../i/a/86.gif) H.Brill | bof, si je qui 680 par 21 (Breite eines Blatt Papieres) teile, viens je sur etwa 32 Druckerpixel pro cm. cela gleiche venez aussi chez qui Hauteur eines Blattes raus. là serait je ca. 35 Pixel pro rebord abziehen.
quoi qui Dimensionierung betrifft :
Créer("hSizedPic",...) pouvoir cela doch pour toi, égal comment grand qui Bitmap comme Dossier ist. cela wird prozentual ensuite eingepaßt. cela peux du alors déjà beim magasin qui Bitmap . Assurez-
alors, je serait là la fois quelque chose anders tour aller. Mach doch la fois un hPic avec 680 -70, 960 -70 . cela Bild malst du sur une Leinwand, alors Static& = Créer("Static",%HWnd, 680, 960) à Position 35, 35. bon alors avec Début de peinture Static& DrawPic Bitmaphnadle, 35, 35, .... EndPaint sur elle zeichnen. là es oui seulement une page ist, serait je cela ensuite avec WinCopy Static& drucken.
Wäre aussi la fois une Possibilité.
si gewünscht ist, cela Staticfenster pas trop voyons, peux on es oui pour dem Erstellen avec ShowWindow verstecken. et pour dem Druck simple wieder avec DestroyWindow cela Static wieder freigeben. |
|
|
| 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 ▲ |
|
|
|