2016-02-27 2 views
2

Я в настоящее время разрабатываю программу в «Visual Studio 2015 C#» и хотел бы реализовать круговые коробки изображений. В программе есть коробки с изображениями, исходное изображение которых загружается из Интернета. В состоянии по умолчанию «картинка» квадратная. Я хотел бы знать, как я могу изменить форму «picturebox» на круг. Таким образом, изображение при загрузке будет круговым, а не квадратным или прямоугольным.Как создать плавный круг в поле C#?

Я уже понял, как уменьшить изображение и сохранить его качество и сосредоточить его, но я не знаю, как изменить «изображение» в круг.

Я нашел пару способов сделать это, но, к сожалению, с помощью этих методов круг не является гладким, вместо этого он пикселирован.

Это пример того, что я хотел бы: http://i.imgur.com/kaOfTFU.png

+0

Какие методы вы нашли тогда? Возможно, их можно улучшить. –

+0

Области не сглаживаются, когда они окрашены, это не доступный вариант. Это, как правило, заметно на вчерашнем мониторе с разрешением 96 точек на дюйм. Возможно, вам следовало бы опередить, сделав круговое изображение вместо контроля. –

ответ

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 пост имеет, как сделать любой путь гладкой для PictureBox:

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

+0

Это в значительной степени метод, который я использовал. Проблема в том, что окружность, созданная с помощью этого метода, имеет пиксели. Пример: http://i.imgur.com/E1TiYZX.png (Изображение справа - это оригинал. Это именно то, что я хочу сделать, но с гладким кругом.) –

+0

Хм ... не знаю, пусть я возиться за несколько – Baronz

+0

Хорошо, спасибо. Дайте мне знать, если вы найдете что-нибудь. –

Смежные вопросы