Имеется изображение синего квадрата, залитое в picturebox. Можно ли сделать его цвет (или оттенок) красным, без смены его на другое изображение или изменение цвета каждого пикселя?
Можно поверх PictureBox разместить панель, залитую полупрозрачным цветом.
Для тестирования создаём новый проект Windows Forms, в конструктор формы помещаем код:
public Form1()
{
//InitializeComponent();
// Создаём изображение - синий квадрат
var bmp = new Bitmap(150, 150);
var g = Graphics.FromImage(bmp);
g.Clear(Color.Blue);
var pictureBox = new PictureBox
{
Parent = this,
Width = 200,
Height = 200,
BorderStyle = BorderStyle.FixedSingle
};
pictureBox.Image = bmp;
// Создаём панель. Обратите внимание: её родитель - pictureBox
var panel = new Panel
{
Parent = pictureBox,
BackColor = Color.FromArgb(100, Color.Red),
//Dock = DockStyle.Fill
Size = pictureBox.Image.Size
};
}
Color.FromArgb(100, Color.Red) - тут создаётся цвет с коэффициентом прозрачности 100 (может быть от 0 до 255; попробуйте поиграться с ним).
Если картинка занимает всю площадь пикчабокса, то у панели можно задать свойство Dock = DockStyle.Fill (размер при этом не задаём). В противном случае, задаём такие же размеры, как у изображения.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники