|
分類:[C#]
こんにちは。
背景が透過に設定されたPNG画像を、ImageListに格納しておき、 必要な際に取り出して元サイズで描画したいと考えています。
しかし、以下のようにImageListに画像を格納してから画像描画を行うと、 画像サイズが元のサイズ(16 * 16pix)より微妙に大きくなってしまいます。 ---------- ImageList imageList = new System.Windows.Forms.ImageList(); imageList.TransparentColor = Color.Transparent; imageList.ImageSize = new Size(16, 16); imageList.Images.Add(Properties.Resources.myicon); pictureBox1.Image = imageList.Images[0]; ----------
念のため、以下のようなソースで画像を描画すると、 元サイズで描画することができます。 ---------- pictureBox1.Image = Properties.Resources.myicon; ----------
おそらく、ImageListから画像を取り出した際に、背景の透過色分だけ、 画像が広がっているのではないかと思います。
透過色をMagentaなどの指定しやすい色に変えればよいのかと思うのですが、 画像の縁どりが半透明になっているので、フォトショップを使っても背景色が 変更しづらい状況にあります。 また、プログラムの都合上、ImageListは利用したいと考えています。
上記のような場合にも、ImageListからきれいに画像を取得するような 方法はありませんでしょうか。 よろしくお願いします。
|