2012-08-23 1 views
0

Nous avons deux images.comparer les dimensions de l'image asp.net

Image tempImage = new Image(); 
tempImage.width = 500; 

Image tempImage2 = new Image(); 
tempImage2.width = 1000; 

Je veux comparer les widthes de ces images et de trouver l'image avec une plus grande largeur:

J'ai essayé suivante:

if (tempImage.Width < tempImage2.Width) Response.write("width of tempImage2 is bigger"); 
else Response.write("width of tempImage1 is bigger"); 

compilateur obtient une erreur: ne peut pas comparer ces deux valeurs.

J'ai essayé suivante:

Image1.Width = (int)Math.Max(Convert.toDouble(tempImage.Width),Convert.toDouble(tempImage2.Width)); 
Response.Write("max width is " + Image1.Width); 

compilateur n'a pas pu convertir la largeur de doubler.

Alors, comment comparer la largeur des images et trouver l'image avec une plus grande largeur?

Répondre

3

Vous obtenez l'erreur parce que la propriété largeur d'une image est un type Unit structure, pas un scalaire et il n'y a pas d'opérateur de comparaison mis en œuvre pour cela.

if (i.Width.Value < j.Width.Value) 

fonctionnera, mais cette comparaison est strictement valable que si la Type de l'unité est le même. Dans votre exemple, il s'agit par défaut de pixels, mais dans un cas plus général, vous devez vous assurer que vous comparez les valeurs de la même unité. Erreur

1

Cela a fonctionné pour moi:

protected void Page_Load(object sender, EventArgs e) 
{ 
    Image tmp1 = new Image(); 
    Image tmp2 = new Image(); 

    tmp1.Width = new Unit(500); 
    tmp2.Width = new Unit(1000); 

    Response.Write(tmp1.Width.Value < tmp2.Width.Value); 
} 

Bonne chance!

0

Je voudrais d'abord mettre la largeur dans un var puis le comparer.

int width1 = image1.Width.Value; 
    int width2 = image2.Width.Value; 

if(width1 < width2){ 
    //apply code } 
+0

: impossible de convertir la largeur en int – Nurlan

Questions connexes