C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: PictureBoxのStretchImageの隙間について


(過去ログ 59 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■33644 / inTopicNo.1)  PictureBoxのStretchImageの隙間について
  
□投稿者/ フミ (18回)-(2009/03/05(Thu) 21:18:58)

分類:[C#] 

毎度お世話になります。

質問があります。

VisualStudio2008C#にて

PictureBoxをStretchImageにして、

PicureBox(サイズ100x100)へ、それより小さいBitmap(サイズ50x50)を表示させようとすると、

絵は拡大されて表示されますが、右と下に何故か若干隙間ができてしまいます。

ピッタリあうようにすることは可能でしょうか?
引用返信 編集キー/
■33686 / inTopicNo.2)  Re[1]: PictureBoxのStretchImageの隙間について
□投稿者/ .SHO (728回)-(2009/03/06(Fri) 20:03:52)
No33644 (フミ さん) に返信

普通ではあり得ないことがおきているので、これでは答えようがないです。
ソース載せた方が早いかも?
引用返信 編集キー/
■33796 / inTopicNo.3)  Re[2]: PictureBoxのStretchImageの隙間について
□投稿者/ フミ (19回)-(2009/03/10(Tue) 10:54:59)
No33686 (.SHO さん) に返信

返信ありがとうございます。
以下にプログラムを載せました。
VS2008のフォームアプリケーションで作った、
ものすごい単純なソースです。
フォームにサイズ100x100のピクチャーボックス1をつくり、背景を黒として、
サイズモードをストレッチイメージとします。
そこに50x50の赤いビットマップを表示するだけです。
表示画面をみると若干ですが左と上部分に比べて、
右と下に背景の黒が必要以上に見えるような気がするのですが、
これがデフォルトでしょうか。。。

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            //デザイン画面でピクチャーボックスをフォームに置いて
            //そのサイズを100×100にする。
            pictureBox1.Width = 100;
            pictureBox1.Height = 100;

            //ピクチャーボックスの背景色を黒にする
            pictureBox1.BackColor = Color.Black;

            //ピクチャーボックスのサイズモードをstretchImageとする。
            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;

            //50×50のビットマップを作成
            Bitmap bmp = new Bitmap(50, 50);

            //ビットマップを赤い色に塗りつぶす
            for (int i = 0; i < bmp.Width; i++)
            {
                for (int j = 0; j < bmp.Height; j++)
                {
                    bmp.SetPixel(i, j, Color.Red);
                }
            }

            //作ったビットマップをピクチャーボックスに表示
            pictureBox1.Image = bmp;
        }
    }
}

引用返信 編集キー/
■33799 / inTopicNo.4)  Re[3]: PictureBoxのStretchImageの隙間について
□投稿者/ .SHO (735回)-(2009/03/10(Tue) 11:28:04)
No33796 (フミ さん) に返信

> 表示画面をみると若干ですが左と上部分に比べて、
> 右と下に背景の黒が必要以上に見えるような気がするのですが、

仕様じゃないでしょうか。

> Bitmap bmp = new Bitmap(50, 50);

これを
Bitmap bmp = new Bitmap(1,1);
にして試してみると、何が起きてるのか理解できるのではないでしょうか?
引用返信 編集キー/
■33801 / inTopicNo.5)  Re[3]: PictureBoxのStretchImageの隙間について
□投稿者/ ひ魔人 (1回)-(2009/03/10(Tue) 11:43:37)
拡大するときに BackColor とのグラデーションになるみたいですなー

pictureBox1 のサイズを200,200にして Bitmap のサイズを1,1にすると奇麗なグラデーションに・・・

デフォルトの機能なんでしょうな、簡単に調べてわかったのはそれぐらい。
引用返信 編集キー/
■33849 / inTopicNo.6)  Re[4]: PictureBoxのStretchImageの隙間について
□投稿者/ フミ (20回)-(2009/03/11(Wed) 13:03:46)
No33799 (.SHO さん) に返信
No33801 (ひ魔人さん)に返信

返信ありがとうございました。
やはりデフォルトの仕様なのですね。。。
端の方の絵がグラデーションにならないようにするには、
ピクチャーボックスのサイズにビットマップを何らかの方法で拡大してから
表示するしかなさそうですね。。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -