• ベストアンサー

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

  • VB2005でJpgファイルの比較

    VB2005で、Jpgファイルが同じ画像か?どうか判定する方法を模索しています。ファイルサイズだけでは、一概に言えないと思いますので、どなたか詳しい方いらっしゃいましたら、教えていただけないでしょうか? BMPだと、一つ一つのビットの比較になるのでしょうか?それとも、CRCチェックみたいな方法があるのでしょうか? よろしくお願いします。

  • exif削除以外のjpgの容量の下げ方

    jpgの容量のを下げたいと思っています。 ウェブ上にデジカメの画像をアップしているのですが、普段からexif情報を削除、またフリーソフトでリサイズをして容量を下げています。 しかし、他サイトに自身のサイトのjpgよりも大きいサイズなのに、容量が小さいものがあることがわかりました。 http://droptokyo.com/street/photo/4712/photo1.jpg 上記のjpgは607 × 911と比較的大きいサイズにもかかわらず、容量が209KBとなっています。 この画像は見たところ画質が悪いとは思えません。 このくらいの画質を保ちつつ容量をこの画像程度に下げたいと思っているのですが、どうすればいいでしょうか? この画像はどのようにして容量を下げたか、わかるでしょうか? 他の質問や、検索して情報を見たのですが、exif情報を削除するぐらいしか有効な手が書かれていないようで困っています。

  • jpgファイルの頭の部分を読みとりたい

    jpgファイルの頭の部分(exifのヘッダあたりの数キロバイト)を読みとり、変数に格納したのですが、Dim や open 文から変数に格納するまで、VB5ではどういう記述をすれば良いのでしょうか? Input、InputB、Get で試みてみましたが。txtの拡張子なら、200文字まで読めましたが、jpgファイルは2、3文字しか読めません。(Dim や open文が違うのかも)具体的な記述の例をお願いします。 目的:写真ファイルを編集すると更新日が記録されます。テレビでスライドショーをすると、撮影日順でなく、更新日順となり、不自然となる。そのため、フォルダ内の多くのファイルの更新日を自動的に撮影日に替えたいのです。1点ずつの変更するフリーソフトは入手しましたが、対象ファイルが多数あり、自動で行いたい。jpgの指定部分をある文字に書き換えるのは put 文でできることは確認しましたので、jpgファイルの頭の部分を読めれば、できると思っています。

  • JPGにバーコード情報を埋め込みたい

    JPGにある特定の情報を埋め込むことができるでしょうか?バーコードの情報を画像に埋め込むことができる方法、ソフトウェアなどがありましたらお教えください。よろしくお願いいたします。exifという規格ならバーコード情報を埋め込むことができると読んだことがあるのですが、jpgにはどこにも情報が書かれていないです・・・

  • jpgファイルで

    jpgファイルの画像の不要な部分を切り取って上書き保存のできるソフトがあったら教えてください。

  • VB.NET ファイルをひとつにまとめる

    現在 プログラムで必要なファイル(画像やデータを書いてあるテキストファイル)を プログラムと同じフォルダに置いて、読み込むようにしています EXE以外のファイルは読み取るだけなので EXEファイルの中に埋め込むような形にしたいのですが どうすればできるでしょうか? よろしくお願いいたします 画像の場合はPictureBoxに貼っておく テキストで持てる情報は 変数に持っておく以外の方法でないでしょうか

  • PCからjpgファイルを携帯に送ったけど見られない

    携帯はauの1年くらい前の機種を使っています。 (機種番号は忘れました。初めてカメラがついたタイプです。カシオ製?) あるHPを見て、待ちうけに使えそうな画像があったので 保存して、携帯に送りました。 jpgファイルで6kBくらいの画像です。 携帯に届き、見ようと思いましたが 「不正なデータです 再生できません」 のメッセージが出て見られませんでした。 5kBくらいの他の画像(jpgファイルで、そのHPには 待ちうけ用画像とありました)を送った時は見れました。 何が問題なのでしょうか? ただ単にjpgだからって見られないのでしょうか? それとも容量の問題でしょうか? 知ってらっしゃる方いたら教えて下さい。

  • JPGのファイル情報を変更する方法

    デジカメ撮影以外で作成したJPGファイルに,写真情報(カメラのモデルや撮影日時など)を付加させたいと思っています。 普通,デジカメの撮影にて作成したJPGは, プロパティ→概要→イメージ カメラのモデル,レンズ,露出時間,写真の撮影日などなど が確認できます。 しかし,Photo Shopで作成したりダウンロードしたJPGファイルは, プロパティ→概要→イメージ を確認しても,上のようなファイル情報は含まれていないと思います。 画像の作成日時や撮影日を変更するソフトとしては, 簡単ファイル日時変更 EzFileAge(http://hp.vector.co.jp/authors/VA029585/EzFileAge/readme.htm...) 日付修正・Exif修正ソフト (http://exif.main.jp) があるかと思います。 しかし,これは,デジカメで作成したJPGファイル(もともと撮影日時等の情報が含まれているファイル)であれば,撮影日等のデータを変更することができますが,もともとその情報がないJPGに無理やり写真情報を付加させることはできなかったと思います。 以上,ご存知の方がいらっしゃれば,ご教授お願いいたします。

  • jpgファイルへの情報の埋め込みの方法

    はじめまして。jpgファイルに「『画像に関わるデータ』以外の情報」を埋め込む事ができると聞いたのですが、方法がわかりません。 今、スキャナーで取り込んだ画像(jpg)に作成日時と、短いコメントを埋め込むようなソフトウェアを作れないかと考えているのですが、上記の方法、または「jpgについて詳しい解説がなされているwebサイト」等、ご存知でしたら教えていただけませんか?

  • 「.jpg」形式の画像ファイルをいくつか(たとえば20ファイルくらい)まとめて「640×480」にリサイズしたいのですが………。

    写真データ(「.jpg」形式の画像ファイル)のリサイズに関して教えてください。 1つ1つの「.jpgファイル」を,その都度1ファイル(1画像)ごとにリサイズする方法は分かったのですが,いくつかの「.jpg」ファイルを,まとめてリサイズする方法・それを実現可能なフリーソフトを,どなたかご存じではございませんでしょうか? 具体的には,以下のような作業をしたく困っています。 1.元のファイル:「2560×1920」の「.jpg」形式の画像ファイル。 2.リサイズしたい大きさなど:「640×480」の「.jpg」ファイルにしたい。 3.作業のポイント:いくつか(たとえば20ファイルくらい)をまとめて,「640×480」にリサイズしたい。 以上,よろしくお願い申し上げます。