tusharkaushik Ответов: 1

коробка изображения в форме круга


Уважаемый господин,
Я хочу создать круговое поле изображения в c#.Можно ли нарисовать картинку коробки.
как я могу это сделать?

1 Ответов

Рейтинг:
7

OriginalGriff

Самый простой способ-установить регион:

myPictureBox.Image = Image.FromFile(@"D:\Temp\MyPic.jpg");
GraphicsPath gp = new GraphicsPath();
gp.AddEllipse(myPictureBox.DisplayRectangle);
myPictureBox.Region = new Region(gp);


Я сделал этот элемент управления, чтобы удалить пиксели по краям
public class CirclePictureBox : PictureBox
        {
            public CirclePictureBox ()
            {
            }

            protected override void OnPaint(PaintEventArgs e)
            {
                System.Drawing.Brush brushImege;
                try
                {
                    Bitmap Imagem = new Bitmap(this.Image);
                    //get images of the same size as control
                    Imagem = new Bitmap(Imagem, new Size(this.Width - 1, this.Height - 1));
                    brushImege = new TextureBrush(Imagem);
                }
                catch
                {
                    Bitmap Imagem = new Bitmap(this.Width - 1, this.Height - 1, PixelFormat.Format24bppRgb);
                    using (Graphics grp = Graphics.FromImage(Imagem))
                    {
                        grp.FillRectangle(
                            Brushes.White, 0, 0, this.Width - 1, this.Height - 1);
                        Imagem = new Bitmap(this.Width - 1, this.Height - 1, grp);
                    }
                    brushImege = new TextureBrush(Imagem);
                }
                e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
                GraphicsPath path = new GraphicsPath();
                path.AddEllipse(0, 0, this.Width - 1, this.Height - 1);
                e.Graphics.FillPath(brushImege, path);
                e.Graphics.DrawPath(Pens.Black, path);
            }
        }


tusharkaushik

Очень, очень заранее спасибо...! где я должен написать этот код, я имею в виду, в каком случае какого контроля.

OriginalGriff

Это полностью зависит от вас. Может быть, нагрузка на форму?

po1725

у меня есть проблема есть некоторая пикселизация на границах которая
выглядит очень плохо, я не могу добавить сглаживание. может помочь?

Sergey Alexandrovich Kryukov

Почему "заранее"? Как будто ответ вам еще не дан...
--СА

tusharkaushik

Tnx заранее! у дал мне ценный намек.

Sergey Alexandrovich Kryukov

:-)

tusharkaushik

спасибо!:)

OriginalGriff

Всегда пожалуйста!

Sergey Alexandrovich Kryukov

Правильно, 5. Но есть хорошее изменение, что сам PictureBox не нужен-это обычная ошибка злоупотреблять им.
--СА

tusharkaushik

но я хочу его как коробку с картинкой в логотипе Microsoft office можно ли это сделать

OriginalGriff

- Простите?
Я не понимаю, о чем вы спрашиваете.

tusharkaushik

когда я выполняю приложение , оно показывает ошибку = "изображение не существует в контексте".
что это значит? вы можете мне помочь?

OriginalGriff

Вы должны были бы уже знать, что это не вопрос!
Нам нужен контекст для сообщения об ошибке, прежде чем мы сможем начать отвечать!

tusharkaushik

- Сэр ! я хочу создать picturebox в круглой форме, так как логотип microsoft разработан в mmicrosoft word 2007 над меню file. Я хочу творить именно так. как это вообще возможно сделать?...

OriginalGriff

Я не использую Word 2007, я использую 2010, поэтому я не могу так легко понять, что вы имеете в виду, но быстрый взгляд на Google и грубое изучение изображений рабочего экрана, и я бы сказал, что это квадратный значок с круглым изображением в нем.
Что имеет смысл, конечно, легче притвориться, чем сделать это...

[no name]

Большое спасибо;
очень полезно

petyline

Большое вам спасибо! Сработало как по волшебству

OriginalGriff

Всегда пожалуйста!

petyline

Может быть, мы поболтаем или что-то еще, хотели бы, чтобы вы задали вам несколько вопросов на WordPress

OriginalGriff

Извините - я ничего не знаю о WordPress - я им не пользуюсь!

Напишите вопрос - я уверен, что кто-то здесь это делает!
http://www.codeproject.com/Questions/ask.aspx

Anna Cabanado

кто-нибудь знает, как это сделать в vb?

[no name]

Это было бы то же самое, только в синтаксисе VB.

Ralf Meier

В интернете есть несколько инструментов (которые можно найти в Google), многие из них также бесплатны, которые могут конвертировать фрагменты кода C# в VB.
Возможно, вы попробуете это сделать с помощью поискового запроса Google ...