OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

ピクチャーボックスの画像を印刷・BMPで保存したい

  • 暇なときにでも
  • 質問No.168028
  • 閲覧数241
  • ありがとう数2
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 47% (159/337)

ピクチャーボックスの画像を印刷・BMPで保存したいのですがどうやったらいいのかわかりません誰か教えてください
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.4
レベル12

ベストアンサー率 65% (276/422)

きっとAutoRedrawがFalseのためでは?

Picture1.Refresh
Call SavePicture(Picture1.Image, "c:\test.bmp")
としてあげてみてください
お礼コメント
ryuta_mo

お礼率 47% (159/337)

やっとできました
ありがとうございます
投稿日時 - 2001-11-14 17:51:59
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル12

ベストアンサー率 65% (276/422)

とりあえず、保存だけ書いておきます。 Call SavePicture(Picture1.Picture, "c:\test.bmp") ...続きを読む
とりあえず、保存だけ書いておきます。
Call SavePicture(Picture1.Picture, "c:\test.bmp")
補足コメント
ryuta_mo

お礼率 47% (159/337)

そのまま入力したけどプロパティの値が不正ですと出ました
何故でしょう
投稿日時 - 2001-11-13 21:05:31
  • 回答No.2
レベル13

ベストアンサー率 46% (643/1383)

それじゃあ、印刷を。 '(General)(Declarations) 'APIの宣言 Option Explicit Private Declare Function StretchBlt Lib "gdi32" _   (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidt ...続きを読む
それじゃあ、印刷を。

'(General)(Declarations)
'APIの宣言
Option Explicit
Private Declare Function StretchBlt Lib "gdi32" _
  (ByVal hdc 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 nSrcWidth As Long, ByVal nSrcHeight As Long _
  , ByVal dwRop As RasterOpConstants) As Long


'Picture1をクリックすると、プリンタでPicture1を印刷する。
Private Sub Picture1_Click()
  Printer.PSet (0, 0), vbWhite  '*1
  StretchBlt Printer.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight _
  , Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight _
  , vbSrcCopy '*2
  Printer.EndDoc
End Sub

********
(General)(Declarations)の中身については先の回答↓
http://www.okweb.ne.jp/kotaeru.php3?q=168025
と同じですね。

で、今回はピクチャーボックスをクリックしたときに、印刷するようにしてみました。
*1: APIを使って画像を転送する前に、一度プリンタを初期化しています。これより前に、Printer.Lineなどでプリンタに何か描画をしていれば、この行は無くても構いません。

*2: StretchBLTを使って、ピクチャーボックスの画像をプリンタに転送しています。
「StretchBLT」APIは、以下のように引数を指定します。
StretchBLT 複写先のオブジェクトのhDCプロパティ, 複写先のX座標, Y座標, 幅, 高さ, 複写元オブジェクトのhDCプロパティ, 複写元のX座標, Y座標, 幅, 高さ, 転送モード
転送モードについては、とりあえずは、vbSrcCopyを指定すると画像をコピーするっていうことだけ覚えておけばいいかと。


先の回答と同じく、質問等ありましたら補足などにお書きください。
お礼コメント
ryuta_mo

お礼率 47% (159/337)

そのままではできなかったけど色々手を加えたら出来ました
ありがとうございました
投稿日時 - 2001-11-14 18:03:36
  • 回答No.3
レベル12

ベストアンサー率 65% (276/422)

>プロパティの値が不正 おそらく画像を読み込んでいないピクチャボックスを保存しようとしたためだと思います。 何か画像が読み込まれていたならば、エラーはでません。 もし、Picuterが存在しないピクチャボックスを保存するなら Call SavePicture(Picture1.Image, "c:\test.bmp") としてあげたらよいと思います。 ...続きを読む
>プロパティの値が不正

おそらく画像を読み込んでいないピクチャボックスを保存しようとしたためだと思います。
何か画像が読み込まれていたならば、エラーはでません。

もし、Picuterが存在しないピクチャボックスを保存するなら
Call SavePicture(Picture1.Image, "c:\test.bmp")
としてあげたらよいと思います。
補足コメント
ryuta_mo

お礼率 47% (159/337)

やってみたら保存はされましたが何も表示されてませんでした
ピクチャーボックスにはちゃんと描画されてます
あとできれば白黒で保存したいのですが出来ますか?
投稿日時 - 2001-11-14 16:54:13
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ