C# .NET Windows Form | СОЗДАЁМ PAINT НА C#
HTML-код
- Опубликовано: 15 фев 2021
- Привет! В сегодняшнем уроке мы сделаем подобие всем известного Paint!)
Если Вы начинающий программист, рекомендую посмотреть урок по созданию калькулятора на языке C# • C# ПЕРВАЯ ПРОГРАММА | ...
Если данное видео тебе было полезно, не забудь подписаться, для тебя это ничего не стоит, а мне приятно :))
P.s Видео в 4к будет доступно через 5-7 часов
---
Track: Sleepy Jake
Music created by Silent Partner
Watch • Sleepy Jake - Silent P...
Track: Heartland
Music created by Silent Partner
Watch • Heartland - Silent Par...
Track: Hit My Soul
Music created by Silent Partner
Watch • Hit My Soul - Silent P...
Track: Log Cabin
Music created by Silent Partner
Watch • Log Cabin - Silent Par...
Track: Harvest Time
Music created by Silent Partner
Watch • (No Copyright Music) H...
Track: Country Instrumental Music
Music created by Mixroba Studio
Watch • FREE COUNTRY INSTRUMEN...
Track: Ukulele and Harmonica Indie Music Background
Music created by Mixroba Studio
Watch • UKULELE AND HARMONICA ...
Track: Milky Way Stars [NCS Release]
Music created by Janji feat. TR
Watch • Janji feat. TR - Milky...
Track: Daisy Dukes
Music created by Silent Partner
Watch • Daisy Dukes - Silent P...
Track: Life of Riley
Music created by Kevin MacLeod
Watch • Life of Riley
⭐ Download store.payloadz.com/details/21...
На моменте 20:44 я сказал , что условие НЕ равно, а сам написал РАВНО, исправьте на НЕ РАВНО, иначе сохранение работать не будет! Извините за ошибку(
в 76 строке ошибка
можешь помочь?у меня не рисует и возникает ошибка в методе drawlines
Я создал простенький метод загрузки изображения в picturebox, но при рисование на загруженной фотке не работает - она обнуляется при попытке рисования.
private void button11_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.InitialDirectory = Directory.GetCurrentDirectory();
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
pictureBox1.Image = new Bitmap(openFileDialog.FileName);
}
catch
{
MessageBox.Show("Невозможно открыть выбранный файл!");
}
то есть он стирает ее при попытке нарисовать поверх. что можно придумать?
@@impraverion бро, скинешь проект?🚀❤️
Лучший! Без воды и прочего, всё понятно и не мямлит, как остальные блогеры. Дальнейшего продвижения канала💫
так же обратим внимание на высокое качество записи, аж приятно было)
видео класс. все кратко и понятно. искал именно такую тему по графике. хоть я и чуть больше чем новичок в C# . было полезно. про CLASS более понял(чем от других ( но боюсь придется пересмотреть.)время ночь). была запара с 88 строчкой. в квадратных скобках [graphics.DrawLines(pen,arrayPoints.GetPoints());] после слова "PEN" поставил точку.
Чувак, огромное спасибо тебе! Теперь я смогу лабу сделать, красавчик. Хочется правда ещё модернизировать, но это уже мои заскоки
отличный разбор программы, ничего лишнего и все понятно из объяснений
cпасибо за видеоурок!
Классный видеоурок.Полезный
Спасибо большое!🔥
Красавчик!!!
супер!)
Это полностью моя курсовая работа...
Ну, всмысле, у меня тема Графический редактор и тут один в один то что мне нужно, спасибо большое!)
бро, скинешь проект?🚀❤️
Парень, спасибо тебе большое. Я сам люблю создавать клеточные автоматы в винформах, ну и собственно там надо расставлять клетки.. и я хз, но я тогда чёт не допер, как сделать чтоб можно было мышку зажать и водить ей рисуя клетки, и приходилось на каждую клетку собственно тыкать.. хотя конечно довольно простое решение просто булевую переменную добавить, которая бы показывала зажата ли мышка.. ну бывают у меня тупняки конечно..
🔥🔥🔥
это гениально....
Спасибо большое
Ты конечно молодец(но много вещей не понятно 4 из 5 лучший(Лайк оставил))
лучший!
Привет, можешь сделать уроки по созданию векторного графического редактора, с нормальным интерфейсом, возможностью изменять цвета, на с#?
Подскажите пожалуйста, как мне не очищать picturebox перед рисованием? У меня просто там программно отрисовываются графики и потом мне нужно на них рисовать мышкой
Идея для нового урока: связка Panel и PictureBox для изображений больше размеров экрана. Как продолжение этого урока.
Тоже самое, только без Классов, проще некуда:
public partial class Form1 : Form
{
Color color = Color.Black;
Bitmap bmp = null;
Graphics graphics;
Pen pen;
bool firstPress = false;
bool draw = false;
Point p1, p2; // Важно завести глобальные точки
public Form1()
{
InitializeComponent();
bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
pen = new Pen(color);
pen.StartCap = LineCap.Round;
pen.EndCap = LineCap.Round;
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
if (draw)
{
draw = false;
using (graphics = Graphics.FromImage(bmp)) // использование using уменьшает количество используемой памяти
{
graphics.DrawLine(pen, p1, p2);
p1 = p2; // Чтобы линия повторяла курсор мыши
}
pictureBox1.Image = bmp;
}
}
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
firstPress = true;
p1 = e.Location;
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (firstPress)
{
p2 = e.Location;
draw = true;
pictureBox1.Invalidate();
}
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
firstPress = false;
}
}
Братан, у меня LineCap.Round подсвечивается красным, типо имени нет, что делать?
@@extremely8018 VisualStudio подскажет что нужно подключить, мышку придержи просто на ошибке.
Помогите пожалуйста выходит ошибка CS1061 Form1 не содержит определение "pictureBox1_Click", и не удалось найти доступный метод расширения "pictureBox1_Click", принимающий тип "Form1" в качестве первого аргумента (возможно, Paint пропущена директива using или ссылка на сборку). ВОТ ЧТО МНЕ ДЕЛАТЬ КАК РЕШИТЬ ЭТУ ПРОБЛЕМУ КТО НИБУДЬ ПОМОГИТЕ!
Народ , как починить то что у меня новая линия начинается из предыдущей?
Создал программу где цикл for рисует вертикальные линии , а второй цикл рисует горизонтальные линни и объединил два в один метод . Почему-то метод рисует набор вертикальных рисует хорошо , а набор горизонтальных линий не рисует . Не могу понять в чем дело ? Вертикальные линии есть , горизонтальные лини не прорисовываются . Ваш урок для меня очень интересен - пытаюсь написать ваш редактор .
Добрый день! Но будет ли урок о том, как создать свой собственный VST-синтезатор на C#?
с чего это "но"?
Привет! Могу ли я с тобой связаться?
у кого нибудь есть готовый код? можете скинуть?
Здравствуйте, а можете подсказать как сделать ластик? Мне нужно для курсовой работы
Если ещё актуально, я сделал ластик так:
pen.Color = pictureBox1.BackColor;
проще говоря я нажимая на кнопку "ластик", присваиваю кисти, цвет заднего фона редактируемого полотна.
Hi, can you post the whole code in the comments?
Сам пиши, так лучше запомнишь
Почему у меня рисуется одной линеей?
неплохо, но есть одно но: я реализовал очистку таким же способом у себя и почему то после того как я нажимаю очистить у меня выделяется дополнительная память, хотя по идее она должна наоборот освобождаться🤔
Чувак, тут очистка реализована просто заполнением памяти. Вот ты нарисовал линию, а функция очистки зарисовывает все поле одним цветом, т е одна линия на другую накалдывается тем самым закрашивая или очищая, как нравится
Прошёл год но отвечу... Для начала два чела сверху мелят херню, на самом деле это визуально проводник показывает что у тебя заполняется память по если ты очистишь бокс 4 - 5 раз то ты заметишь что память выше не поднимается то есть остаётся максимум 26 мегабайт так что вот так вот...
@@ShadVert да уже не актуально. Мне таску в унике надо было делать, вот видос твой смотрел. Если интересно что получилось, (Ютуб ссылку не даёт вставить сюда) отпиши мне куда-нибудь, я скину репу
@@leinadalien, я не являюсь автором канала так что видос не мой.
Идеально, но что-то не так (не рисует)
Бро он у меня не сохраняет я не понимаю в чём дело(
можно пожалуйста готовый файл ?
У меня панель Выбор толщины устанавливается выше панели цвета.
А еще у меня не сохраняется файл.
ты не видишь? автор комментарий написал:
На моменте 20:44 я сказал , что условие НЕ равно, а сам написал РАВНО, исправьте на НЕ РАВНО, иначе сохранение работать не будет! Извините за ошибку(
@@daniilkams и че?все равно не робит
@@maximleo1904тебе вместо == надо поставить !=
Все отлично, но у меня почему-то не сохраняется результат, а в целом конструктивно
бро, скинешь проект?🚀❤️
@@BroVaduxa777 он утерен.
Здравсвтуйте! У меня пишет что Имя "colorDialog1" не существует в текущем контексте
Ты не поместил colorDialog на форму. 16:50
Может есть у кого код этот? Срочно нужно
Хелп, у меня линия рисует неотрывно, даже если выбирать другой цвет. Что я могла упустить? 🥲
нужна твоя помощь🙏🏻
скинешь проект?🚀❤️
Привет ты решил проблему?
@@BroVaduxa777 какой проект?)
@@lukaviann этот с пеинтом, уже не нужно, благодарю❤️😌
private void pictureBox2_MouseMove(object sender, MouseEventArgs e)
{
if (!isMouse) { return; }
arrayPoints.SetPoint(e.X, e.Y);
if (arrayPoints.GetCountPoints() >= 2)
{
graphics.DrawLines(pen, arrayPoints.GetPoints());
pictureBox1.Image = map;
arrayPoints.SetPoint(e.X, e.Y);
}
}
Выдаёт ошибку CS0122