掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TIFFのビット深さ(ビット)、ページ数をGDI+で表示させるには? (ID:143385)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> お恥ずかしい“質問”失礼いたしました。。。 デバッグ依頼や作成依頼ではなく、“質問”なのですよね? (一応確認) > 本っ当に申し訳ありませんが、「GdipGetPropertyItem API 」を使用した > ビット深度や解像度を取得(表示)させる方法を、 > 教えていただけませんでしょうか。 手順は既に回答してあると思いますが、分からなかった箇所はどの部分でしょうか。 そのものズバリでは無いにしろ、GdipGetPropertyItem API を用いた 実際のコードも紹介されているかと思います。 http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200709/07090026.txt 先の URL のサンプルでいう「Dim Img As Long」や「Private mhGDIPImage As OLE_HANDLE」が mp5 さんのコードでいう所の「Dim pSrcBmp As Long」に該当します。 サンプル中では、 Const GdiImageDelay = &H5100& Const GdiLoopCount = &H5101& といった値を指定していますが、そこを >> PropertyTagBitsPerSample (&H102) … 16bit整数 >> PropertyTagSamplesPerPixel (&H115) … 16bit整数 >> PropertyTagXResolution (&H11A) … 32bit整数×2 (dpi:分子と分母) >> PropertyTagYResolution (&H11B) … 32bit整数×2 (dpi:分子と分母) に置き換えて試してみてください。 # 検証コードを書こうにも、手元にマルチページなTIFFファイルが # 無いので、やり方の概要説明だけの回答になってしまいますが、 # その点はご容赦を…。 > が、やはり動きませんでした。(当たり前ですよね・・・) mp5さんが「やはり」「当たり前」と仰っている根拠は分かりませんが、 単純に動かないと一言で片づけず、文法エラーなのか、実行時エラーなのか、 それとも、動きはするけれども期待動作しないという意味なのか、 もう少し詳しく説明していただけると助かります。 (それによって理解度が見えてきて、回答しやすくなるので) > ネットを探索して 具体的には、どの URL のコードを参考にされたのでしょうか。 参考にされたものがあるのならば、その URL を教えてください。 > ビット深さの取得を行う以下のマクロを作成しました。 「Debug.Print horResln, verResln」というコードがありますが、 これらの変数に値をセットしている個所も無ければ、そもそも horResln や verResln を変数宣言している個所さえ無いようです。 Option Explicit なのに変数の宣言忘れというのも不自然ですが、もしかして これは未完成のコードなのでしょうか。それとも、誤動作ながらも 動作するコードの『一部』のみを掲載したものなのでしょうか。 > BitBlt pSrcBmp, BitPer 文法的には、"BitBlt" という名の Sub あるいは Function を呼んでいるようですが、 このコードは、どういった処理を行うことを意図して書かれたものでしょうか? 最初は、先頭にある API 宣言の Function かと思いましたが、 > Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long それにしては、引数の数が一致しませんし、デバイスコンテキスト(hDC)を渡すべき第一引数に、 GDI+ の Bitmap オブジェクト(GpBitmap) を渡しているのが不自然です。 コードを読み進めてみると、「Dim BitBlt As Long」という宣言も見えますが、 それだと文法的に合わない(Sub や Function では無くなってしまう)ですし…。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.