VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/09/01(Mon) 22:56
投稿者困った子
URL
タイトルRe^2: スクリーンのスナップショットを色を替えて表示したい

> TransparentBlt APIを使用すれば指定の色を透過させてビットマップを転送できます。
> 変更したい色をピクチャーボックスのバックカラーにしておけば、それで変更できるかと
> 思います。ただ、貴方が希望される動作になるかは?
> TransparentBlt で検索すれば、サンプルが見つかります。
> http://plaza5.mbn.or.jp/~heropa/vb08.htm
>
> 又、単純な方法ならドットの色を読み込んで指定の色だったら変更したい色に置き換えればできます。
> ここの[ピクチャーを回転して表示(90度毎)]は調べた位置の色を90度回転した位置に
> 表示しているのです。

回答ありがとうございます。
単純に、ドットの色を変更するだけなので、[ピクチャーを回転して表示(90度毎)]を参考にしましたが、
色を変更して、ピクチャーボックスに表示することはできましたが、ビットマップを保存したり、
印刷することができません。
また、色が変更できても、再表示で戻ってしまいます。
再度、宜しくお願いします。

'クリップボード内にビットマップ形式のデータがあるか調べる
  If Clipboard.GetFormat(vbCFBitmap) Then
    'ファイル名を自動生成
    MyFileName = App.Path & "\" & Format$(Now, "yymmddhhmmss") & ".BMP"
    '表示データーをビットマップ形式のデータで保存
    Set PicData = Clipboard.GetData
    picture1.picture = PicData 'ピクチャーボックスにビットマップを設定
        '色を変更
       For x = 0 To Picture.ScaleWidth
    For y = 0 To Picture.ScaleHeight
        '図のカラー情報の読み取り
      c = Picture.Point(x, y)
      '読み取ったカラー情報を角度を変更して描画
      If c <> -1 Then
             if c = 0 then
               c = &HFFFFFF
        Picture.PSet (x, y), c
             end if
            end if
          next y
        next x
  この後、保存・印刷をしたいと思います。
 


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -