- ベストアンサー
jpgファイルの内容を比較したいです。VB.NET
jpgの画像ファイルですが、ファイル名やexif情報が異なっていても 画像そのものが一緒だったら同一と判断できるような処理をしたい のですが、容量が最後の1桁まで同じで、画像のサイズが同じなら 同じものと見なすとすれば簡単かなと思ったのですが、 exif情報を変更すると、容量が少し変化してしまいます。 この為、容量は手がかりになりそうもないので、 画像データ部分そのものを比較したいのですが、 画像データ本体の部分をIF文で比較できるような 変数に入れるにはどうしたら良いでしょうか。 たいへん恐れ入りますがご教示頂けたら幸いです。
- みんなの回答 (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
お礼
redfox63さま ご回答ありがとうございます。 具体的なコードまで書いて頂いてとても助かります。 ありがたく活用させて頂きたいと思います。 ありがとうございます!