Ciao a Tutti,
Ora ho un problema che mi assilla e sul quale non riesco a trovare soluzione
soddisfacente. Vi chiedo, se possibile, la soluzione oppure l'indicazione di
fonte da consultare al proposito.
L'ambiente è Vista e Visual Basic (Visual Studio 2008).
Ho una picturebox che contiene una immagine.
La picturebox viene dimensionata rispettando le proporzioni dell'immagine
originale.
L'immagine originale ha un dimensionamento reale indicato dall'utente in due
Textbox nei termini di larghezza ed altezza in millimetri.
I valori DPI.X e DPI.Y ritornano la densità dei pixels.
Su questa immagine devo eseguire delle misure che mi devono ricondurre alla
realtà in quanto l'oggetto rappresentato nell'immagine ha un rapporto 1:1
nella realtà.
Ad esempio un'immagine che ha dimensioni di mm 24x36 visualizza un oggetto che
ha una lunghezza di mm 1.5. Ciò significa che questo oggetto è realmente lungo
mm. 1.5.
SUl monitor questa immagine viene visualizzata molto più grande (sempre
rispettando le proporzioni).
Orbene io devo essere in grado di misurare questa lunghezza, tracciando una
linea, che, dopo le opportune trasformazioni, mi deve risultare lunga mm. 1.5.
Il programma da me sviluppato mi riconduce ad una misurazione in senso
orizzontale con una tolleranza accettabile; ma non a quella verticale e, di
conseguenza alle varie diagonali.
Io ho un monitor da 20" ed opero ad una risoluzione di 1024x768. Quando leggo
i valori DPI sia la X che la Y mi ritornano 96. Qualsiasi risoluzione, anche
la più ampia disponibile (1680x1050), mi ritorna sempre lo stesso valore.
Mi domando, se il pixel ha una dimensione rettangolare come mai in un pollice
quadrato ci sono gli stessi pixels sia in orizzontale che in verticale ?
Orbene il mio problema, al momento irrisolto, è quello di eseguire misure
corrette su questa immagine. In pratica, dopo aver disegnato una linea,
orientata a piacere, devo poterla misurare correttamente.
Scusa se mi sono dilungato nell'esposizione ma ho cercato di rappresentare al
meglio l'oggetto delle mie ansie.
Grazie per l'attenzione.
Roberto