• ベストアンサー

jpgファイルの内容を比較したいです。VB.NET

jpgの画像ファイルですが、ファイル名やexif情報が異なっていても 画像そのものが一緒だったら同一と判断できるような処理をしたい のですが、容量が最後の1桁まで同じで、画像のサイズが同じなら 同じものと見なすとすれば簡単かなと思ったのですが、 exif情報を変更すると、容量が少し変化してしまいます。 この為、容量は手がかりになりそうもないので、 画像データ部分そのものを比較したいのですが、 画像データ本体の部分をIF文で比較できるような 変数に入れるにはどうしたら良いでしょうか。 たいへん恐れ入りますがご教示頂けたら幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

BitmapオブジェクトにJPGファイルを読み込んでGetPixelメソッドで比較といった具合でしょう 以下にサンプルコードを書いてみます 例外処理などは省いてますので適宜行ってくださいね インデントは 全角スペースを使用してます Function CompJpeg(sName1 as string, sName2 as String) as Boolean  dim bmp1 as new Bitmap(sName1)  dim bmp2 as new Bitmap(sName2)  dim x,y as Integer  dim c1, c2 as color  dim bFlag as Boolean  ' 幅が違えば 不一致  if bmp1.Width <> bmp2.Width then Return False  ' 高さが違えば不一致  if bmp1.Height <> bmp2.Height then Return False  bFlag = false  for y=0 to bmp1.Height -1   for x=0 to bmp1.Width -1    ' 2つのファイルの色情報を取得    c1 = bmp1.GetPixel(x,y)    c2 = bmp2.GetPixel(x,y)    ' 2つのファイルの色情報を比較    bFlag = c1.ToArgb <> c2.ToArgb    if bFlag then exit for   next   if bFlag then exit for  next  ' 結果を出力  return bFlag End Function

popopompom
質問者

お礼

redfox63さま ご回答ありがとうございます。 具体的なコードまで書いて頂いてとても助かります。 ありがたく活用させて頂きたいと思います。 ありがとうございます!

関連するQ&A