Newsgroup: it.comp.lang.visual-basic
Titolo: image e picturebox

hello
ho una immagine in formato bmp che e' di 6930 x 5511 pixel di circa 37 Megab
che carico (vedi codice ) in una image con lo stretch= true per ottenere una
visione completa dell ģimmagine.
la image e inclusa in una picturebox e desudero fare lo zoom e con il
mousedown della image vorrei leggere i valore dei pixel dell'immagine ma
ecco cosa succede:
Image1.Picture.Width  e  Image1.Picture.Height sono rispettivamente 146685 e
116650 mentre se scorro il mouse
sull'immagine (image) i valori massimi de x e y della sub
image1_mousedown_click sono rispettivamente di 5940 e 4716
mentre io mi aspetto i valori reali in pixek delll'immagone (6930 x 5511)
che ho caricato in image1.
sia la form che la picturebox sono settati in pixel
grazie dellģaiuto
leonello
Ps le dimensioni reali in pixel dell'immagine le ho ottenute non con
PaintShopPro
...............................................
.......................................
zoom = False
zoom_box = False
HScroll1.Visible = False
VScroll1.Visible = False
Image1.Stretch = True
Image1.Picture = LoadPicture("c:\507.bmp")
 Label2.Caption = Image1.Picture.Width & "   " & Image1.Picture.Height
rpic_xy = Image1.Picture.Width / Image1.Picture.Height
  If rpic_xy > 1# Then
    Image1.Width = 500
    Image1.Height = Image1.Width / rpic_xy
  Else
     Image1.Height = 500
     Image1.Width = Image1.Height * rpic_xy
  End If
Picture1.Width = Image1.Width
Picture1.Height = Image1.Height
'
HScroll1.Max = 100
VScroll1.Max = 100
HScroll1.Top = Picture1.Top + Picture1.Height + 2
HScroll1.Left = Picture1.Left
HScroll1.Width = Picture1.Width
VScroll1.Height = Picture1.Height
VScroll1.Left = Picture1.Left + Picture1.Width + 2
VScroll1.Top = Picture1.Top
Label1.Caption = Image1.Picture.Width & "  " & Image1.Picture.Height
Me.Show
End Sub

 sia la form che la picturebox sono settati in pixel
'Metti sul form una Label1 e una Label2 (abbastanza larghe),
'una Picture1 e, al suo interno, una Image1.
'X e Y al MouseDown sulla Image sono in Twips
'Esegui questo codice e ... capirai ;-)
Private Sub Form_Load()
    Me.ScaleMode = vbPixels
    Picture1.ScaleMode = vbPixels
    Image1.Stretch = 1
    Image1.Picture =
LoadPicture("C:\easywins\easywin\files\immagini\kelly.jpg")
    Label1.Caption = "IPH=" & Image1.Picture.Height & " x IPW=" &
Image1.Picture.Width & " (Twips) - IH=" & Image1.Height & " x IW=" &
Image1.Width & " (Pixels)"
End Sub
Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As
Single, Y As Single)
    Label2.Caption = "YTw=" & Y & " - XTw=" & X & " - YPx=" &
Picture1.ScaleY(Y, vbTwips, vbPixels) & " - XPx=" & Picture1.ScaleX(X,
vbTwips, vbPixels)
End Sub

 End Sub
ho fatto la prova che mi hai suggerito ma sono rimasto nel "buio".
il mio problema e' quello di ricavare dall' immagine i "veri pixels" con cui
l'immagine e' stata digitizzata
perche' conosco la dimensione reale in metri del pixel (fornito da chi ha
digitizzato la mappa)
per chui mi e' facile puntando il cursore ricavare le coordinate reali del
punto dela mappa
quindi come ricavare la dimensione in pixels dell'immagine ?
leonello

 quindi come ricavare la dimensione in pixels dell'immagine ?
Non sono sicuro di aver capito, ma se conosci le dimensioni originarie
dell'immagine credo che tu possa, agendo su ScaleMode (per la tua scala) e
Scale<Width Height>, "assegnare" le misure desiderate all'immagine stessa,
rendendola quindi trattabile identicamente all'originale.

 all'originale.
PS: Con una PictureBox, ovviamente...
Lo stretch (proprio di un'Image) č emulabile via PaintPicture anche per una
PictureBox, agendo sui vari parametri della PaintPicture stessa.

 rendendola quindi trattabile identicamente all'originale.
utilizzando il paintpicture non sono riuscito a nulla anche consultando la
guida
ho inserito una picturebox e con la loadpicture ci ho caricato una immagine
cosi picture1.paintpicture  loadpicture("c:\nomeimmagine.jpg").0,0,100,100
ma non vedo nulla la picture1 rimane vuota
Quello che debbo fare e' caricare una carta topografica in una picture ,fare
degli zoom
per poterla leggere chiaramente e con il mouse determinare le coordinate
del puntatore del mouse e sriverle su un file
conosco le coordinate dei vertici della carta topografica
leonello

[leonello = 
circa_leonell...@fastwebnet.it
 in
sFBfc.9845$
eR5....@tornado.fastwebnet.it
] ha scritto:

'Una Picturebox (Picture1) e una label (Label1)
Private Sub Form_Load()
    Picture1.AutoRedraw = 1
    Call
Picture1.PaintPicture(LoadPicture("c:\easywins\easywin\files\immagini\kelly.
jpg"), 0, 0, Picture1.Width, Picture1.Height)
    Picture1.ScaleMode = vbUser
    Picture1.ScaleWidth = 500000    'A caso
    Picture1.ScaleHeight = 500        'A caso e del tutto incoerentemente
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
    Label1.Caption = "X=" & X & " - Y=" & Y
End Sub