初めてお世話になります。
WindouwsMeでVB6.0を使って開発しています。
PictureBoxに表示した画像をピクセル単位で読み取り、別のオブジェクトに位置を指定して表示させたいと思っています。
Picture.Point(X,Y)として表示させるのではないかと思うのですが、表示の際にほ表示画面全体をある一点の色で塗りつぶす様な形になってしまいます。
コードは以下のようになっています。
Picture2.ScaleMode = vbPixels
Set Picture2.Picture = LoadPicture("C:\My Documents\無題.jpg")
→読み取る画像を表示する
Shape3.FillStyle = vbpoint
Shape3.FillColor = Picture1.Point(0, Y + i)
→読み取った画像をオブジェクトに表示する
分かりにくくてすみません。
正しい方法をご存知でしたら教えてください。よろしくお願いします。
もう一回Shapeコントロールの用途を読み直してください。
普通もうひとつPictureBoxを用意し、そこにPaintPicture等を使って
画像描画を行います。
abuさん
ありがとうございます。もう一度用途から見直してみます。
また質問するかもしれませんがよろしくお願いします。
上記の件ですがやはりうまくいかなくなってしまったので質問させて下さい。
もう一つPictureBoxを用意するということでしたが、
Set Picture1.Picture = PictureClip1.Picture
としてPictureClipに直接画像を用意してPicuture1に表示させることはできました。
しかし、その後の読み取りがうまくいかないのですがよい方法ご存知ではないでしょうか?
よろしくお願いします。
> しかし、その後の読み取りがうまくいかないのですがよい方法ご存知ではないでしょうか?
もしかして「その後の読み取り」はShapeのまま?
>みいさん
最初そのままで実行していましたが、現在はPaintPictureを使用して
Set Picture2.Picture = PictureClip1.Picture
Picture1.PaintPicture Picture2.Picture, X1,Y1, 1, 1,X2,Y2, 1, 1
としてPicture2に表示させた画像をPicture1に読み取らせようとしています。
すると「プロ−ジャの呼び出し、または引数が不正です」
となってしまいました。PaintPictureの使い方が間違っているのでしょうか?
一点ずつ絵をコピーしたかったんでしたね。
PaintPictureはある範囲をコピーする場合に使います。
その方が一点ずつコピーするより速いと思ったので
紹介しましたが、仕様が一点ずつということであれば
Pointで色を取得しPSetで点を描画してください。
使い方は自分で想像しないで、ちゃんとMSDNなり
WEB上のサンプルアプリケーションなりを理解して
正しく使用してください。
abuさん
みいさん
いろいろと教えていただきありがとうございます。
教えていただいたPaintPictureの方法で実行することができました。
一点づつ描写する方法も理解して試みてみます。
次こそ成功の報告が出来るようがんばります。
いろいろと親切に教えて下さってありがとうございました。PaintPictureの方法で思っていた画像が描けるようになりました。ありがとうございました。
編集 削除