2012-04-11 6 views
-1

Wenn wir 2 gleiche Bilder haben. Einer ist klein und einer ist groß. Jetzt haben wir x y Wert auf kleines BildC# Bildkoordinaten Verarbeitung

dann, wie wir es auf der gleichen Position auf großes Bild zuordnen werden. Kann mir jemand mit Formel sagen?

+1

Wie "nahe" müssen Sie sein? Offensichtlich wird es auf dem großen Bild mehr Pixel geben als das kleine Bild. Sind irgendwelche der "gleichen" Pixelpositionen vorzuziehen? – dlev

Antwort

3

Ich könnte mir vorstellen, Sie es einfach skalieren würde:

int bigX = smallX * (bigWidth/smallWidth); 
int bigY = smallY * (bigHeight/smallHeight); 

Beachten Sie, dass Sie möchten, können Gleitkomma-Arithmetik verwenden Integer-Arithmetik Probleme zu vermeiden:

int bigX = (int) (smallX * ((double) bigWidth/smallWidth)); 
int bigY = (int) (smallY * ((double) bigHeight/smallHeight)); 
1

Einfach Proportionen verwenden.

Point bigpoint = new Point((int)(smallpoint.X * bigwidth/smallwidth), 
      (int)(smallpoint.Y * bigheight/smallheight)); 

// Assuming that Point smallpoint is the pixel of small image 
Verwandte Themen