2017-03-19 14 views
0

PictureBox에 특정 이미지가 있는지 확인하려고했습니다. 의 이미지를 Properties.Resources.TheImage을 사용하여 설정했습니다.ResX 리소스를 사용하여 설정된 이미지를 기반으로 PictureBox를 찾습니다

아래 코드를 사용하면 PictureBox 컨트롤 중 하나에서 이미지를 찾을 수 없습니다. 나는이 일을 할 수 있도록 시도하고있다 :

foreach (Control X in Controls) 
{ 
    if (X is PictureBox) 
    { 
     if (((PictureBox)X).Image == Properties.Resources.TheImage) 
     { 
      MessageBox.Show("found the image"); 
     } 
    } 
} 
+0

문제가 무엇

var b = object.ReferenceEquals(Properties.Resources.SomeImage, Properties.Resources.SomeImage); 

이미지의 평등을 확인하려면이 방법을 사용할 수 있습니까? – Sajeetharan

답변

0

Properties.Resources.XxxxYyy 속성은 항상 새로운 비트 맵을 사용할 때마다 반환됩니다. 일반적으로 불쾌한 메모리 사용량의 소스. 폼 생성자의 변수에 저장해야합니다. 이제 비교할 수 있습니다.

예 :

Bitmap _icopalABitmap = Properties.Resources.IcopalA; 
Bitmap _icopalBBitmap = Properties.Resources.IcopalB; 

다음 u는 특정 이미지에 대한

0

Properties.Resources.SomeImage 반환 다른 개체 참조 당신이 그것을 사용할 때마다 확인. 당신은 단순히 테스트 CAM : 예를 들어

public bool AreImagesEqual(Image img1, Image img2) 
{ 
    ImageConverter converter = new ImageConverter(); 
    byte[] bytes1 = (byte[])converter.ConvertTo(img1, typeof(byte[])); 
    byte[] bytes2 = (byte[])converter.ConvertTo(img2, typeof(byte[])); 
    return Enumerable.SequenceEqual(bytes1, bytes2); 
} 

:

var b = AreImagesEqual(Properties.Resources.SomeImage, 
         Properties.Resources.SomeImage); 
+0

게시물에 귀하의 질문에 대한 답변이있는 것으로 보입니다. 대답에 대해 질문이 있거나 유용하다고 생각되면 알려주세요. :) –