• 締切済み
  • すぐに回答を!

ACCESS VBA TIFF形式のファイルの解像度を取得したいです。

ACCESS VBA TIFF形式のファイルの解像度を取得したいです。 以前の書き込みに幅×高さのピクセル値の求め方がかかれてあり、理解しました。 用紙サイズの判別に上記の 幅x高さと解像度を利用しようと考えています。 よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数2192
  • ありがとう数3

みんなの回答

  • 回答No.1

大げさな方法。なんとか2K文字をクリア。ご参考まで。 Private Type GdiplusStartupInput GdiplusVersion As Long DebugEventCallback As Long SuppressBackgroundThread As Long SuppressExternalCodecs As Long End Type Private Declare Function GdipCreateBitmapFromFile Lib "Gdiplus" (FileName As Any, bitmap As Long) As Long Private Declare Function GdipDisposeImage Lib "Gdiplus" (ByVal Image As Long) As Long Private Declare Function GdipGetImageHeight Lib "Gdiplus" (ByVal Image As Long, Height As Long) As Long Private Declare Function GdipGetImageWidth Lib "Gdiplus" (ByVal Image As Long, Width As Long) As Long Private Declare Sub GdiplusShutdown Lib "Gdiplus" (ByVal token As Long) Private Declare Function GdiplusStartup Lib "Gdiplus" (token As Long, pInput As GdiplusStartupInput, pOutput As Any) As Long Private Declare Function GdipGetImageHorizontalResolution Lib "Gdiplus" (ByVal Image As Long, resolution As Single) As Long Private Declare Function GdipGetImageVerticalResolution Lib "Gdiplus" (ByVal Image As Long, resolution As Single) As Long Sub test() Dim udtInput As GdiplusStartupInput Dim lngToken As Long, lngStatus As Long Dim pSrcBmp As Long, pDstBmp As Long Dim lngWidth As Long, lngHeight As Long Dim horResln As Single, verResln As Single Dim srcPath As String srcPath = "C:\Documents and Settings\????????\デスクトップ\hoge.tif" udtInput.GdiplusVersion = 1 If GdiplusStartup(lngToken, udtInput, ByVal 0&) <> 0 Then Exit Sub End If If GdipCreateBitmapFromFile(ByVal StrPtr(srcPath), pSrcBmp) <> 0 Then GdiplusShutdown lngToken Exit Sub End If GdipGetImageWidth pSrcBmp, lngWidth GdipGetImageHeight pSrcBmp, lngHeight Debug.Print lngWidth, lngHeight GdipGetImageHorizontalResolution pSrcBmp, horResln GdipGetImageVerticalResolution pSrcBmp, verResln Debug.Print horResln, verResln GdipDisposeImage pSrcBmp GdiplusShutdown lngToken End Sub

参考URL:
http://arkham46.developpez.com/articles/office/clgdiplus/

共感・感謝の気持ちを伝えよう!

質問者からのお礼

mitarashiさま ご回答ありがとうございました。 悩んでいたことが解決しました。

関連するQ&A

  • ACCESS VBA 画像ファイルの大きさ(幅x高さ)を取得したい

    ACCESS VBAで画像ファイルの大きさ(バイト数では無く、ピクセル 幅x高さ)を取得したいです。 やりたい事は”スキャナしたA4、A3混在の複数のTIFF形式のファイル(マルチページ形式では無い)をサイズ判別して、それぞれ別レポートで元のサイズで印刷”です。 用紙サイズの判別に上記の 幅x高さを利用しようと考えています。 バイト数の取得(FileLen)の様な単純な方法は無いですか? いろいろ調べてはみたのですが見付かりませんでした。 初心者ではありますが、どうしても必要なので多少複雑になっても勉強して理解しようと思います。 宜しくお願いします。

  • TIFF形式のファーマットの例

    TIFF形式の画像のファイル構造を知りたいです。 前半がタグ(?)を用いて、画像の情報(解像度など)を示し、後半がピクセルごとの情報を示しているみたいなのをどこかでみました。また、さまざまな形式があることもわかりました。 TIFF形式の画像について、バイナリデータとして知りたいです。具体的(例として)に示されているホームページを知っている方、教えてください。例としては「解像度が8×6だとすると、バイナリデータの1つ目が 08 で、2つ目が 06 です。」って感じで説明しているホームページです。 知っている方がいたら、教えてください。

  • ExcelVBAでファイルのプロパティを取得

    こんにちは ExcelVBAでファイルのプロパティを取得する方法をお伺いします。 更新日時やファイルサイズの取得についてはいくつか参考にするサイトが見つかりました。 今回知りたいのはJPEGなど画像ファイルの縦横のピクセル数です。ファイルのプロパティとしては「大きさ ○○×△△」「横 ○○ピクセル」「高さ △△ピクセル」と表示される項目です。 これをExcelVBAで取得する方法をお教えください。

  • AVIファイルを他形式にしたい。

    あるAVIファイルが再生に使うソフトによって、再生できるのと出来ないのがあります。できるのは、ウィンドウズメディアプレイヤーで、出来ないのが、ムービーメーカとTMPGエンコーダーです。他形式に変更したいのですが、出来ません。 幅:640ピクセル、高さ:432ピクセル、ビットレート:256kbps、フレーム率:25フレーム/秒、データ速度:202kbpsです。 どうすれば、他形式(mpgなど)にできるでしょうか?

  • Excel2003のVBAで、セルの幅・高さをピクセル単位で取得するには?

    Excel2003のVBAで、セルの幅・高さをピクセル単位で取得するにはどのようにすればよいのでしょうか? Excel2002とExcel2003では違いがあるのでしょうか? 良書などございましたら、ご教授ください。

  • ファイルのプロパティで表示される解像度とは?

     デジカメで撮った写真のプロパティでイメージを選択しますと映像の詳細内容が出てきますが、ここに表示してある解像度(例えば200dpi)とか高さ(29.26cm)、幅(30.01cm)はどのような意味を持つのでしょうか?映像情報自体には解像度、高さ、幅というものは無いと思うのですが?  これは単に解像度200dpiのプリンターで、このファイルを印刷した場合の印刷された写真の高さ、および幅が、そうなりますよと言う一例として表示されているのでしょう?  あるいは、このファイルを印刷すると強制的に、ここに記載されてい解像度、高さおよび幅で印刷されるという事でしょうか?(多分それはないと思いますが?)  是非教えて下さい。お待ちしています。

  • VBAでの画像情報取得について

    タイトルの通りなのですが、 画像の幅、高さ、ビットの深さの情報を取得したいです。 LoadPictureを使い、幅と高さは取得できたのですが、 ビットの深さを取得する方法がわかりません。 PixcelFormatのようなものはVBAに存在するのでしょうか。

  • Access2003VBA・MDBファイルの容量をVBAで知りたいです。

    Access2003VBAで質問です。 (1)VBA実行中(自分自身)のMDBファイルの容量を、VBAで知ることはできますか? CSVファイルを読み込む処理ですが、1.9ギガくらいで、処理をとめたいのです。 (2)VBA実行中(自分自身)のMDBファイルのディレクトリを取得する方法を教えて下さい。 (3)自分自身のMDBファイルは、最適化できませんよね。 DAOで、閉じてるMDBファイルをコピーするしかないのかな?

  • ファイル形式について

    本の図版からスキャナーやデジカメで取り込んだ画像を保存するときのファイル形式についてのアドバイスをお願いします。私は最初、JPEGで保存していたのですが、JPEGは保存するときに失われる部分があって完全には再生されないみたいなことを知りました。それ以来TIFFで保存しているのですが、容量が大きくなって扱いづらいです。使用目的は、解像度を変えて、ワードで編集してプリントアウトするくらいなので、画像自体の編集はほとんどしません。また、TIFFのLZW圧縮はどういうものでしょうか。してもしなくてもあまり容量は変わらない気がするのですが。そしてワード文書に挿入したときに表示が変になるようです。それから、ファイル形式の変更は、一枚ずつ別名で保存していくしかないのでしょうか。

  • VBAでユーザー定義用紙サイズの値を取得する

    現在、Excelで出荷伝票(連続用紙)を印刷するVBAを作成しています。 [プリントサーバ-のプロパティ]に登録している「出荷伝票 幅9インチ 高さ4インチ」を用紙サイズに指定したいのですが、VBAを実行するパソコンが変わると「ActiveSheet.PageSetup.PaperSize」に設定される値も変わってしまうため、どうすれば良いのか悩んでいます。 理想としてはVBAを実行するとその都度「出荷伝票」の用紙サイズ(コード)を取得しPaperSizeに設定できれば良いのですが、そのような方法をご存知の方がおられましたらご教示のほどよろしくお願い致します。