私はStretchImageを使用しています。なぜなら、ボックスはスプリッタでリサイズできるからです。デフォルトは平滑な双線形フィルタリングのようなもので、画像がぼやけてモアレのパターンになっているようです。PictureBoxで最近傍リサンプリングを使用するにはどうすればよいですか?
答えて
役立ちますまた、私は、ピクチャボックスを継承するクラスを作っOnPaint
をオーバーライドし、補間モードを設定することができるようにプロパティを追加します。
/// <summary>
/// Inherits from PictureBox; adds Interpolation Mode Setting
/// </summary>
public class PictureBoxWithInterpolationMode : PictureBox
{
public InterpolationMode InterpolationMode { get; set; }
protected override void OnPaint(PaintEventArgs paintEventArgs)
{
paintEventArgs.Graphics.InterpolationMode = InterpolationMode;
base.OnPaint(paintEventArgs);
}
}
ImageクラスとDrawImage関数を使用して手動でサイズ変更を行い、PictureBoxのresizeイベントに応答する必要があると思われます。
.NETで画像をリサイズ、System.Drawing.Drawing2D.InterpolationModeは、以下のリサイズ方法施設:
- バイキュービック
- バイリニアを
- 高
- HighQualityBicubic
- HighQualityBilinear
- Low
- NearestN eighbor
- デフォルト
私はOPの質問にどのように対処しているのかわかりません。 – JYelton
は、私は、MSDNの検索を行なったし、非常に詳細ではありませんが、あなたがペイントイベントを使用する必要があることを概説し、この上の記事は、ありますが判明しました。
http://msdn.microsoft.com/en-us/library/k0fsyd4e.aspx
が、私はこの機能を使用する例をズーム一般に入手可能な画像を編集した、から編集以下を参照してください。http://www.dotnetcurry.com/ShowArticle.aspx?ID=196&AspxAutoDetectCookieSupport=1
希望この私はこの機能を必要と
private void Form1_Load(object sender, EventArgs e)
{
// set image location
imgOriginal = new Bitmap(Image.FromFile(@"C:\images\TestImage.bmp"));
picBox.Image = imgOriginal;
// set Picture Box Attributes
picBox.SizeMode = PictureBoxSizeMode.StretchImage;
// set Slider Attributes
zoomSlider.Minimum = 1;
zoomSlider.Maximum = 5;
zoomSlider.SmallChange = 1;
zoomSlider.LargeChange = 1;
zoomSlider.UseWaitCursor = false;
SetPictureBoxSize();
// reduce flickering
this.DoubleBuffered = true;
}
// picturebox size changed triggers paint event
private void SetPictureBoxSize()
{
Size s = new Size(Convert.ToInt32(imgOriginal.Width * zoomSlider.Value), Convert.ToInt32(imgOriginal.Height * zoomSlider.Value));
picBox.Size = s;
}
// looks for user trackbar changes
private void trackBar1_Scroll(object sender, EventArgs e)
{
if (zoomSlider.Value > 0)
{
SetPictureBoxSize();
}
}
// redraws image using nearest neighbour resampling
private void picBox_Paint_1(object sender, PaintEventArgs e)
{
e.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor;
e.Graphics.DrawImage(
imgOriginal,
new Rectangle(0, 0, picBox.Width, picBox.Height),
// destination rectangle
0,
0, // upper-left corner of source rectangle
imgOriginal.Width, // width of source rectangle
imgOriginal.Height, // height of source rectangle
GraphicsUnit.Pixel);
}
picBox_Paint_1メソッドにはどのようなイベントが組み込まれていますか?それはあなたのコードの他の部分にあるでしょう。 –
それはフォームデザイナーコードにあります:this.picBox.Paint + = new System.Windows.Forms.PaintEventHandler(this.picBox_Paint_1); – ardunn
- 1. CFGと任意の数の近傍を解析するにはどうすればよいですか?
- 2. 多次元配列の近傍を見つけるにはどうすればよいですか?
- 3. 近い値をグラフ化するにはどうすればよいですか?
- 4. 最近のアプリリストに表示されるスナップショットを変更するにはどうすればよいですか?
- 5. Javascriptで最も近いエンティティを取得するにはどうすればよいですか?
- 6. K最近傍
- 7. Arrayから最も近い値を取得するにはどうすればよいですか?
- 8. はIndexError:K最近傍のPythonのK最近傍
- 9. 検索結果に最も近い値を予測するにはどうすればよいですか?
- 10. 最新のSDK APIを使用しないようにするにはどうすればよいですか?
- 11. システムトレイの近くでjavafxステージを最小化するにはどうすればよいですか?
- 12. アンドロイドで最近一時停止したアクティビティを再開するにはどうすればよいですか?
- 13. Androidでアプリの最近の起動時間を確認するにはどうすればよいですか?
- 14. 最近のアプリをプログラムで起動するにはどうすればよいですか?
- 15. 最近有効期限切れのパスワードを確認するにはどうすればよいですか?
- 16. backgroundworkerでイメージをロードし、pictureboxに表示するにはどうすればよいですか?
- 17. Git:ディレクトリに最も近いコミットを見つけるにはどうすればよいですか?
- 18. floatをnの最も近い倍数に丸めるにはどうすればよいですか?
- 19. どうすれば最も近い10に丸めますか?
- 20. Wordpressサイトの最近のブログエントリをウェブページ内に表示するにはどうすればよいですか?
- 21. アクティブ/最近のユーザーをホームページに表示するにはどうすればよいですか?
- 22. Rubyでは、要素が近傍にどのくらい近づいているかをどのように計算するのですか?
- 23. モートンコードで最近傍を見つける
- 24. ComboBoxでPictureBoxと画像のサイズを変更するにはどうすればよいですか?
- 25. PictureBoxでImageRectangleの寸法を取得するにはどうすればよいですか?
- 26. PictureBoxコントロールでスクロールバーを表示するにはどうすればよいですか?
- 27. Visual BasicでPictureBoxジャンプを作成するにはどうすればよいですか?
- 28. 配列オブジェクトから最近の日付または最も近い日付を取得するにはどうすればよいですか?
- 29. 最近アップロードした動画を直接表示するにはどうすればよいですか?
- 30. ネイティブiosアプリケーションの最近の名前フィールドを設定するにはどうすればよいですか? - iOS
ので、これを行うには実際に方法はありませんか?いくつかの簡単な方法で? – Luiscencio
@ルシエンシオ:それはそれがどのように見えるかです。適切なサイズの新しいビットマップとそれからGraphics.DrawImage –
であなた自身で行う必要があります.Jyeltonの答えに印を付ける必要があります。 :) – Pedro77