2016-02-27 53 views
2

我目前正在設計一個「Visual Studio 2015 C#」中的程序,並希望實現圓形圖片框。在程序中有圖片框從網上下載源圖片。在默認狀態下,「picturebox」是方形的。我想知道如何將「picturebox」的形狀改爲圓形。這樣,加載時的圖像將是圓形的,而不是方形或矩形。如何在C#中創建一個平滑的圓形圖片框?

我已經想出瞭如何縮小圖像尺寸並保持其質量並居中,但我不知道如何將「picturebox」更改爲圓形。

我發現了一些方法來做到這一點,但不幸的是,使用這種方法,圓不光滑,而是像素化。

這是我想什麼一個例子:http://i.imgur.com/kaOfTFU.png

+0

你發現了什麼樣的方法呢?也許他們可以改進。 –

+0

區域在繪製時沒有反鋸齒,它不是可用的選項。這在昨天的96 dpi顯示器上很明顯。也許你應該通過使圖像循環而不是控制來實現。 –

回答

3

您創建的路徑(即一個圓圈,或任何你想要的形狀),並在PictureBox區域設置爲路徑。這裏有一個例子用一個圓圈:

public partial class Form1 : Form { 
    public Form1() { 
     InitializeComponent(); 
     System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath(); 
     path.AddEllipse(0, 0, pictureBox1.Width, pictureBox1.Height); 
     pictureBox1.Region = new Region(path); 
    } 
    } 

這StackExchange帖子有如何使任何路徑平滑的圖片框:

Possible to have anti-aliasing when drawing a clipped image?

+0

這幾乎是我使用的方法。問題是用這種方法產生的圓是像素化的。例如:http://i.imgur.com/E1TiYZX.png(右邊的圖片是原圖,這正是我想要做的,但是有一個平滑的圓圈。) –

+0

嗯...不知道,讓我修補了幾個 – Baronz

+0

好的,謝謝。如果你發現任何東西,請告訴我。 –