Ciao amici,
non riesco a trovare il modo per acquisire con VB6 le dimensioni di stampa di una immagine. Infatti finora VB6 mi ha dato le dimensioni in tweep di una immagine. Qualcuno ha una idea?
Grazie.
Ciao amici,
non riesco a trovare il modo per acquisire con VB6 le dimensioni di stampa di una immagine. Infatti finora VB6 mi ha dato le dimensioni in tweep di una immagine. Qualcuno ha una idea?
Grazie.
Giorgio
L'esperienza è il tipo di insegnante più difficile. Prima ti fa l'esame, e poi ti spiega la lezione. (Oscar Wilde)
Ma tu in quali unita' di misura le vuoi?
O fai una conversione o usi ScaleMode ...
Ciao oregon,
grazie dell'intervento. Non è un problema di scale. A me non interessa la dimensione sullo schermo, ma le dimensioni di stampa dopo un cambiamento della risoluzione (pixel/pollici).
Giorgio
L'esperienza è il tipo di insegnante più difficile. Prima ti fa l'esame, e poi ti spiega la lezione. (Oscar Wilde)
Non mi sono spiegato ...
Come ottieni questa dimensione in tweeps? Hai una picturebox?
Ciao, potresti disegnare l'immagine sulla stampante, adattandola a qualsiasi formato:
Sub StampaImmagine()
Dim Larghezza As Long
Dim Altezza As Long
Dim FotoWidth As Long
Dim FotoHeight As Long
'definisco la stampante come l'immagine
Printer.ScaleMode = vbTwips
'voglio 12 x 10 mm.
FotoWidth = 12
FotoHeight = 10
Larghezza = InteroSuperiore(567 * FotoWidth / Printer.TwipsPerPixelX, 0) * Printer.TwipsPerPixelX
Altezza = InteroSuperiore(567 * FotoHeight / Printer.TwipsPerPixelY, 0) * Printer.TwipsPerPixelY
'carico l'immagine in dimensione massima su un controllo Image
Set Image1.Picture = LoadPicture()
Set Image1.Picture = LoadPicture(App.Path & "\TEST.BMP", vbLPLarge, vbLPColor)
'disegno l'immagine sulla stampante
Printer.PaintPicture Image1.Picture, 100, 100, Larghezza, Altezza
Printer.EndDoc
End Sub
Questo è un semplice esempo base, ma si può centrare, stampare in orizzontale, ecc.
Ciao pierabo,
la tua routine funziona perfettamente eseguendo qualche ritocco, cioè cosi:
Sei sempre molto brava a trovare soluzioni che io con le mie conoscenze attuali non riuscirei a trovare.codice:Sub StampaImmagine() Dim Larghezza As Long Dim Altezza As Long Dim FotoWidth As Long Dim FotoHeight As Long 'definisco la stampante come l'immagine Printer.ScaleMode = vbTwips 'voglio 12 x 10 mm. FotoWidth = 12 FotoHeight = 10 Larghezza = int(567 * FotoWidth / Printer.TwipsPerPixelX) * Printer.TwipsPerPixelX Altezza = int(567 * FotoHeight / Printer.TwipsPerPixelY) * Printer.TwipsPerPixelY 'carico l'immagine in dimensione massima su un controllo Image Set Image1.Picture = LoadPicture() Set Image1.Picture = LoadPicture(App.Path & "\TEST.BMP", vbLPLarge, vbLPColor) 'disegno l'immagine sulla stampante Printer.PaintPicture Image1.Picture, 100, 100, Larghezza, Altezza Printer.EndDoc End Sub
Ciao oregon,
anche tu sei molto bravo e risolvi il problema di trovare le informazioni che mi necessitavano. Infatti è tuo l'intervento risolutivo nel thread http://forum.html.it/forum/showthrea...hreadid=880995 con la ruotine:
Conoscendo la risoluzione basta dividere una dimensione in pixel per la risoluzione in pixel/pollici e moltiplicare per 2,54 e si trova la relativa dimensione di stampa.codice:Dim XDPI As Integer Dim YDPI As Integer Open "File.jpg" For Binary As #1 Seek #1, 16 Get #1, , XDPI Get #1, , YDPI Close #1 Debug.Print "Ris. Orizz. " & XDPI; " dpi" Debug.Print "Ris. Vert. " & YDPI; " dpi"
Come ultima cosa vorrei chiedervi se riducendo le dimensioni dell'immagine col metodo Paintpicture si perdono informazioni in termini di pixels.
Non credo che con questo mio post vi ho spiegato tutto sulle mie finalità. Potremo sempre rivederci qui.Però mi premeva ringraziarvi subito. Adesso devo andare a prenzo eheh.
Grazie e tutti e due!![]()
Giorgio
L'esperienza è il tipo di insegnante più difficile. Prima ti fa l'esame, e poi ti spiega la lezione. (Oscar Wilde)