リッチテキストボックスに画像のサイズを自動調整して貼り付けたい

解決


ピース  2009-11-17 20:03:41  No: 146534

VB2008のリッチテキストボックスを使用して、画像や文字を貼り付けて利用しています。
画像ファイルの画像をリッチテキストボックスに表示させる場合、画像を直接リッチテキストボックスに表示させる方法が分からないため、
画像ファイルをビットマップに呼び出して、それをクリップボード経由でリッチテキストボックスに貼り付けています。

さて、リッチテキストボックスに貼り付けた画像がリッチテキストボックスの幅より大きい場合、
自動的に画像の大きさを縮小したいのですが、どうすればよいでしょうか?
現在画像をビットマップに変換しているため、ビットマップ変換時にビットマップのピクセルを小さくすれば
縮小は可能なのですが、ここで縮小すると、画像が劣化するので、リッチテキストボックスに貼り付けた画像を
手動で(マウスを使って)サイズ調整する感覚でできたらいいなと思っています。
どうぞよろしくお願いいたします。


味噌カレー牛乳ラーメン食べようよ  2009-11-17 21:32:07  No: 146535

リッチテキストボックスを使用する意図は何ですか?


ピース  2009-11-17 22:30:17  No: 146536

味噌カレー牛乳ラーメン食べようよさま、こんにちは。
リッチテキストボックスを使用する目的は、後でリッチテキスト形式で保存し、WORDなどで開いたりできるようにしたいためです。
後で編集ができるようにするため、あえてHTMLで構築することは考えていません。

そもそも、リッチテキストボックスへの画像の挿入はクリップボード経由で行っていますが、
もっとよい方法がございましたらお教えください。

よろしくお願いいたします。


味噌カレー牛乳ラーメン食べようよ  2009-11-18 04:18:17  No: 146537

こんな感じで良いのでしょうか?

まず、OpenFileDialog, PictureBox,Buttonコントロールを追加します

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        OpenFileDialog1.Filter = "jpeg(*.jpg,*.jpg)|*.jpg;*.jpg|" + "   ビットマップ(*.bmp)|*.bmp"

        Dim fname As String = ""
        OpenFileDialog1.Filter = "jpeg(*.jpg,*.jpg)|*.jpg;*.jpg|" + "   ビットマップ(*.bmp)|*.bmp"
        'ファイルを開くダイアログボックス
        If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then

            'ファイル名を取得
            fname = OpenFileDialog1.FileName
            '読み込み
            PictureBox1.Image = Image.FromFile(fname)
PictureBox1.SizeMode = PictureBoxSizeMode.Zoom
        End If


味噌カレー牛乳ラーメン食べようよ  2009-11-18 04:21:40  No: 146538

補足
リッチテキストボックスの中にPictureBox1を挿入配置してください

開発環境はVB2008


おまいのかぁちゃん  2009-11-18 04:38:19  No: 146539

http://bbs.wankuma.com/index.cgi?mode=al2&namber=19190&KLOG=37
参考になるといいですね。


ピース  2009-11-19 02:25:32  No: 146540

みなさま、ありがとうございました。
実際のリッチテキストボックスのrtf情報を見たところ、\picwgoal(数値)および\pichgoal(数値)というコードがあり、
どうやら前者は画像の幅、後者は画像の高さに関係がありそうです。
これらの数値部分を直接書き換えることで対応できそうです。
とりあえず、このスレは終了とします。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加