Как сделать прозрачный фон в visual studio
В этой статье рассматривается, как работать с редактором изображений Visual Studio для просмотра и изменения ресурсов изображений и текстур.
Вы можете использовать редактор изображений для работы с различными форматами изображений и текстур, которые используются при разработке приложений DirectX. Он также поддерживает популярные форматы файлов изображений и цветовые кодировки, функции, такие как альфа-каналы и MIP-текстурирование, а также многие форматы текстур с аппаратным ускорением и высокой степенью сжатия, поддерживаемые DirectX.
Поддерживаемые форматы
Редактор изображений поддерживает следующие форматы изображений:
Название формата | Расширение имени файла |
---|---|
PNG (Portable Network Graphics) | PNG |
JPEG | JPG, JPEG, JPE, JFIF |
Поверхность DirectDraw | DDS |
Graphics Interchange Format | GIF |
Bitmap | BMP, DIB |
Формат TIFF | TIF, TIFF |
TGA (Targa) | TGA |
Начало работы
В этом разделе рассматривается, как добавить в проект Visual Studio изображение и настроить его в соответствии с вашими требованиями.
Добавление изображения в проект
В обозревателе решений откройте контекстное меню проекта, в который требуется добавить изображение, и выберите пункты Добавить > Новый элемент.
В диалоговом окне Добавление нового элемента в разделе Установленные выберите Графика, а затем выберите подходящий формат файла для изображения.
Если в диалоговом окне Добавление нового элемента нет категории Графика, возможно, необходимо установить компонент Редакторы изображений и трехмерных моделей. Закройте диалоговое окно и в строке меню выберите Сервис > Получить средства и компоненты, чтобы открыть Visual Studio Installer. Перейдите на вкладку Отдельные компоненты и выберите компонент Редакторы изображений и трехмерных моделей в категории Наборы для разработки игр. Выберите Изменить.
Сведения том, как выбрать формат файла, соответствующий вашим требованиям, см. в разделе Выбор формата изображения.
Укажите имя файла изображения и расположение, где его необходимо создать.
Выберите кнопку Добавить.
Выбор формата изображения
В зависимости от того, как вы планируете использовать изображение, некоторые форматы файлов могут оказаться более подходящими, чем другие. Некоторые форматы могут не поддерживать нужную функцию, например прозрачность или определенный формат цвета. Некоторые форматы могут не обеспечивать подходящее сжатие для вашего содержимого изображения.
Следующие сведения помогут вам выбрать формат изображения, соответствующий вашим нуждам:
Точечный рисунок (BMP)
Формат растрового изображения. Формат изображения без сжатия, который поддерживает 24-разрядный цвет. Формат точечного рисунка не поддерживает прозрачность.
Изображение в формате GIF
Формат изображения GIF. Формат изображения со сжатием LZW без потери качества, который поддерживает до 256 цветов. Не подходит для фотографий и изображений со значительным объемом цветовых оттенков, но обеспечивает хорошую степень сжатия изображений с малым количеством цветов и высокой степенью их согласованности.
Изображение в формате JPG
Формат изображения JPEG. Формат изображения с высокой степенью сжатия с потерями, который поддерживает 24-разрядный цвет и подходит для сжатия изображений общего назначения с высокой степенью согласованности цвета.
Изображение в формате PNG
Формат изображения PNG. Формат изображения средней степени сжатия, без потери качества, который поддерживает 24-разрядный цвет и альфа-прозрачность. Подходит для естественных и искусственных изображений, но не обеспечивает степень сжатия, применяемую в форматах JPG или GIF.
Изображение в формате TIFF
Формат изображения TIFF (TIFF или TIF). Гибкий формат изображения, поддерживающий несколько алгоритмов сжатия.
Текстура в формате DDS
Формат текстуры DirectDraw Surface (DDS). Формат текстур высокой степени сжатия с потерей качества, который поддерживает 24-разрядный цвет и альфа-прозрачность. Его максимальная степень сжатия равна 8:1. Он создан на основе сжатия текстур S3. Его можно распаковать с помощью графического оборудования.
Изображение в формате TGA
Формат изображения TGA или Targa. Формат изображения, сжатого с использованием алгоритма RLE, без потери данных, который поддерживает закодированные цветом (цветовой палитры) или простые цветные изображения с 24-разрядным цветом и альфа-прозрачностью. Не подходит для фотографий и изображений со значительным объемом цветовых деталей, но обеспечивает хорошую степень сжатия изображений с широким диапазоном одинаковых цветов.
Настройка изображения
Перед началом работы с созданным изображением можно изменить его конфигурацию по умолчанию. Например, можно изменить его размеры или формат цвета. Дополнительные сведения о настройке этих и других свойств изображения см. в разделе Свойства изображения.
Перед тем как сохранить результаты работы, задайте свойство Формат цвета, если требуется использовать определенный формат цвета. Если формат файла поддерживает сжатие, при первом сохранении файла или при выборе команды Сохранить как можно настроить параметры сжатия.
Работа с редактором изображений
В этом разделе рассматривается, как с помощью редактора изображений вносить изменения в текстуры и изображения.
Команды, влияющие на состояние редактора изображений, находятся на панели инструментов Режим редактора изображений вместе с расширенными командами. Панель инструментов расположена у верхнего края области конструктора редактора изображений. Инструменты для рисования расположены на панели инструментов Редактора изображений у левого края области конструктора редактора изображений.
Панель инструментов "Режим редактора изображений"
В следующей таблице описываются элементы на панели инструментов Режим редактора изображений, перечисленные в порядке отображения, слева направо:
Зеленый канал
Синий канал
Шахматная доска
Для отображения фона в виде шахматной доски вместе с указанным цветом фона используется зеленый цвет. Этот параметр можно использовать, чтобы выделить прозрачные части изображения.
Белый фон
Для отображения фона используется белый цвет.
Черный фон
Для отображения фона используется черный цвет.
Фильтры
Предоставляет несколько распространенных фильтров изображения: Черно-белое, Размытие, Brighten (Осветление), Darken (Затемнение), Определение границ, Тиснение, Обратить цвета, Ripple (Рябь), Sepia Tone (Оттенок сепия) и Повысить резкость.
Графические модули
Render with D3D11 (Визуализация с помощью D3D11)
Использует Direct3D 11, чтобы отрисовать область конструктора редактора изображений.
Render with D3D11WARP (Визуализация с помощью D3D11WARP)
Использует платформу Windows Advanced Rasterization Platform (WARP) Direct3D 11 для отрисовки области конструктора редактора изображений.
Инструменты
Отразить по-горизонтали
Транспонирует изображение вокруг оси X, или по горизонтали.
Отразить по-вертикали
Транспонирует изображение вокруг оси Y, или по вертикали.
Создать MIP-объекты
Создает уровни MIP для изображения. Если уровни MIP уже существуют, они создаются повторно из наибольшего уровня MIP. Любые изменения, внесенные в меньшие уровни MIP, будут потеряны. Чтобы сохранить созданные уровни MIP, для сохранения изображения необходимо использовать формат DDS.
Просмотр
Панель инструментов редактора изображений
В следующей таблице приведены описания элементов на панели инструментов редактора изображений, перечисленные в порядке отображения, сверху вниз:
Работа с уровнями MIP
Некоторые форматы изображений, например поверхность DirectDraw (DDS), поддерживают уровни MIP для уровня детализации текстур и пространства. Сведения о том, как создавать уровни MIP и работать с ними, см. в статье Практическое руководство. Создание и изменение MIP-уровней.
Работа с прозрачностью
Некоторые форматы изображений, например поверхность DirectDraw (DDS), поддерживают прозрачность. В зависимости от применяемого инструмента существует несколько способов использования прозрачности. Чтобы указать уровень прозрачности для выбранного цвета, в окне Свойства установите альфа-компонент A.
В следующей таблице описывается, как используются различные инструменты для применения прозрачности.
Свойства образа
Окно Свойства можно использовать для задания различных свойств изображения. Например, можно задать свойства ширины и высоты, чтобы изменить размеры изображения.
В приведенной ниже таблице описаны свойства изображений.
Свойство | Описание |
---|---|
Ширина | Ширина изображения. |
Высота | Высота изображения. |
Бит на пиксель | Количество битов, в которых представлен каждый пиксель. Значение этого свойства зависит от цветового формата изображения. |
Прозрачное выделение | Если задать значение True, выбранный слой смешивается с основным изображением на основе альфа-фактора выбранного слоя. В противном случае следует установить значение False. Этот элемент доступен только для изображений, поддерживающих альфа-канал. |
Формат | Формат цвета изображения. Вы можете указать несколько форматов цвета в зависимости от формата изображения. Формат цвета определяет количество и тип цветовых каналов, которые содержит изображение, а также размер и кодирование различных каналов. |
Уровень MIP | Активный уровень MIP. Этот элемент доступен только для текстур с уровнями MIP. |
Число уровней MIP | Общее количество уровней MIP в изображении. Этот элемент доступен только для текстур с уровнями MIP. |
Число кадров | Общее количество кадров в изображении. Этот элемент доступен только для изображений, поддерживающих массивы текстур. |
Frame | Текущий кадр. Вы можете просмотреть только первый кадр. Остальные кадры будут потеряны при сохранении изображения. |
Число срезов глубины | Общее количество срезов глубины в изображении. Этот элемент доступен только для изображений, которые поддерживают объемные текстуры. |
Срез глубины | Текущий срез глубины. Вы можете просмотреть только первый срез. Остальные срезы будут потеряны при сохранении изображения. |
Изменение размеров изображений
Существует два способа изменения размера изображения. В обоих случаях редактор изображений использует билинейную интерполяцию для изменения размера изображения.
В окне Свойства задайте новые значения для свойств Ширина и Высота.
Выберите все изображение и используйте метки границ для изменения его размера.
Выбранные области
Параметры, выбранные в редакторе изображений, определяют активные области изображения. Активные области попадают под действие инструментов и преобразований. При наличии активного выделения на области большинство инструментов и преобразований не влияют за его пределами. При отсутствии активного выделения активно все изображение.
Большинство инструментов (Карандаш, Кисть, Распылитель, Заливка, Ластик, а также двумерные примитивы) и преобразований (Повернуть, Обрезать, Обратить цвета, Перевернуть слева направо и Перевернуть сверху вниз) ограничиваются или определяются активным выделением. Но некоторые инструменты (Пипетка и Текст) и преобразования (Создать MIP-объекты) работают независимо от выделений. Эти инструменты всегда действуют так, как если бы было выделено все изображение.
Выделяя область, можно сделать ее пропорциональной (квадрат). Для этого нужно нажать и удерживать клавишу SHIFT. В противном случае выделение не ограничивается.
Изменение размера выделения
После выделения области можно изменить размер выделения или содержимое изображения, поменяв размер метки выделения. При изменении размера выбранной области можно использовать следующие клавиши-модификаторы для изменения поведения выбранной области в процессе изменения:
CTRL: копирует содержимое выбранной области до изменения ее размера. Исходное изображение при этом остается неизменным; изменяется размер копии.
SHIFT: изменяет размер выбранной области пропорционально ее исходным размерам.
ALT: изменяет размер области выделения. Изображение при этом остается неизменным.
В следующей таблице перечислены сочетания клавиш-модификаторов:
Ctrl | Shift | Alt | Описание |
---|---|---|---|
Изменяет размер содержимого области выделения. | |||
Сдвиг | Пропорционально изменяет размер содержимого области выделения. | ||
ALT | Изменяет размер области выделения. Определяет новую область выделения. | ||
Сдвиг | ALT | Пропорционально изменяет размер области выделения. Определяет новую область выделения. | |
Ctrl | Копирует, а затем изменяет размер содержимого области выделения. | ||
Ctrl | Сдвиг | Копирует, а затем пропорционально изменяет размер содержимого области выделения. |
Свойства инструмента
Когда инструмент выбран, в окне Свойства можно задать, как он должен влиять на изображение. Например, можно задать толщину инструмента Карандаш или цвет инструмента Кисть.
Вы можете задать основной цвет и цвет фона. Передний план и фон поддерживают альфа-канал, который позволяет пользователю указать прозрачность. Параметры применяются ко всем инструментам. При использовании мыши ее левая кнопка отвечает за основной цвет, а правая кнопка — за цвет фона.
Эти свойства инструментов описаны в приведенной ниже таблице:
Значение
Текст для отрисовки.
Шрифт
Шрифт, который используется для отрисовки текста.
Размер
Размер текста.
Полужирный
Делает шрифт полужирным.
Курсив
Выделяет шрифт курсивом.
Thickness
Определяет толщину линии, формирующей границу примитива.
Радиус X
(Скругленный прямоугольник.) Определяет радиус закругления для верхнего и нижнего краев примитива.
I am using Visual Studio 2012. This is a screenshot of my form:
There is a solution using a normal control like Panel, . We can draw the image ourselves, however it's hard for a PictureBox . Even the solution for another control is not really good if you want to move the object at runtime (because of flicker).
I know this is an old question, but why don't you have once single picturebox and then get the Graphics object and use the graphics.DrawImage to draw all the images to the picturebox image, instead of having a picturebox object on the form for every image you have to draw and move around?
7 Answers 7
One way to do this is by changing the parent of the overlapping picture box to the PictureBox over which it is lapping. Since the Visual Studio designer doesn't allow you to add a PictureBox to a PictureBox, this will have to be done in your code (Form1.cs) and within the Intializing function:
Just change the picture box names to what ever you need. This should return:
I am using two pictures that are of different dimensions. When I set one image to be the parent of the other only the overlapping portion gets displayed, and anything that's outside the parent's boundaries gets cut off. Any solution to this?
@valsidalv I'm sorry, I haven't been in Visual Studio for a bit, but from what I remember, wouldn't it be possible just to enlarge the parent image (without stretching, etc. ), so that it would also display all of the child?
GameBoard is control of type DataGridView; The image should be type of PNG with transparent alpha channel background;
Load the image like this:
I solved this problem by RectangleShape and with the below code I removed background, if difference between PictureBox and RectangleShape is not important and doesn't matter, you can use RectangleShape easily.
Trying to do this, however, I can't get the RectangleShape to appear on top of the other controls (i.e. it seems to be below them and so doesn't appear on the form)
One fast solution is set image property for image1 and set backgroundimage property to imag2, the only inconvenience is that you have the two images inside the picture box, but you can change background properties to tile, streched, etc. Make sure that backcolor be transparent. Hope this helps
Sorry this comment is not helping. What did you try? What mistake and Properties are you referring to?
3 Answers 3
Put this in the constructor:
The class need to enable the transparent style. (For some reason it isn't supported by default).
Or if it's not a custom control:
Even when I sub-classed TextBox this didn't work. I can successfully set the BackColor property to Color.Transparent (it no longer throws an exception), but the textbox is not actually transparent - I cannot see the control behind it.
I've found a workaround for this problem, which I have on my own. Most of what I've read over here is true. And the approaches "à la" AlphaBlendTextBox are way too complex or too time-consuming for some environments, already heavily charged.
Assume you have a given background color and a given picture or whatever you want to see through the RichTextBox control. This is what I've done (summarized):
- on the main form, you place the picture, text, buttons or whatever as projected, with the proper background color and / or picture
- create a new form and position it wherever appropriate
- set this new form TransparencyKey to SystemColors.InactiveBorder
- take care of this form border properties ( FormBorderStyle to FormBorderStyle.None ; ControlBox , MinimizeBox , MaximizeBox and ShowIcon to false , TopMost to true , StartPosition to FormStartPosition.Manual , SizeGripStyle to SizeGripStyle.Hide ), so there's no visible form structures
- create a RichTextBox with the same size of the form and located on its upper, left corner
- set this box BackColor to SystemColors.InactiveBorder (remember the TransparencyKey?) and its BorderStyle to None as well
- take care of textbox contents: color(s), font(s) and strings
- synchronize this form visibility with whatever you need to and. voilà! You can see your application background through whatever you write and edit on the text box!
I can't pretend this approach fits everybody, but it is way simpler than others I've seen and, as long as I can keep it that way, I do prefer the simpler solutions.
Of course, when you close the main form, you must take care of the child form, but this is pretty basic for you, isn't it?
Столкнулся с проблемой, не могу установить прозрачный цвет фона для основного окна программы.
Прозрачный фон формы при pictureBox(png картинка без фона)
Доброе. Я делаю прогу для лабы и она состоит из 2-х форм: сплэшскрина и рабочая форма. Как.
Прозрачный цвет для формы и PictureBox
вот на днях делал игру, и всплыл такой вот вопрос: установить прозрачный цвет для формы и picture.
Как сделать цвет фона формы изменяющимся?
Как сделать цвет фона формы изменяющимся? или это невозможно?
Цвет фона формы в зависимости от положения курсора
Есть форма, допустим 300х300. Когда курсор на координатах 0 0 - форма белая. Когда на 300х300 (или.
Opacity да, но это свойство применяется ко всем объектам, вот если-бы его применить к определённому объекту
Добавлено через 2 минуты
идея примерно такова:
установить TransparencyKey каким-то цветом и всё, где встречается этот цвет будет прозрачным. если кнопку окрасить этим цветом, то она будет прозрачной. полностью прозрачной. если сделать этим цветом надпись на кнопке, то надпись будет прозрачной.
Нет, к сожалению мне это не подходит.
Да, подобный метод использовал, не плохо, но на фон полупрозрачных цветов и цвета заливки он устонваливает цвет фона.
Так в этом и проблема, Visual Studio выдаёт,
Ошибку: Элемент управления не поддерживает прозрачные цвета фона.
Это видно все зависит от внутреннего строения элемента. Потому что Label поддерживает прозрачный фон без б, а вот к примеру TreeView нет, как не старайся =( хотя может я ошибаюсь. Вывод: Люди, пишите свои контролы )
Скузи, сеньоры.
Но при работе с текстом на прозрачном фоне возникают артефакты (*.jpg в прикреплённом файле).
Делаю как велел Koran, то есть с Lime в роли прозрачного цвета. От того и артефакт соответствующий.
Делал также, как указано по ссылке на мсдн, но тот вариант не помог.
Вопрос: как избежать артефактов, если просто изменить ключ прозрачности не вариант?
сколько не бился над этой проблемой прошлый раз нашел только 1 рабочий путь, использовать WPF против WindowsForms, там достаточно установить цвет фона окна в прозрачный и галку AllowsTransparency чтобы окно стало полностью прозрачным, но все контролы при этом остаются видимыми, далее для красивости фона можно на фон повесить картинку с прозрачным цветом фона и файлом png с прозрачностью и получиться красочная форма с полноценной прозрачностью.
PS смотри пример во вложении
Сохранение настроек программы (цвет фона формы, в частности)
Создана форма. На ней одна кнопка. Она описана ниже. ColorDialog diag=new ColorDialog(); .
Если введенная дата–выходной, изменить цвет фона формы
В текстовом поле вводится дата. Если введённая дата–выходной (суббота, воскресенье) , то форма.
Цвет фона текстбокса
Пытаюсь изменить цвет фона TextBox пишет Элемент управления не поддерживает прозрачные цвета фона.
Приносим извинения. Запрошенное содержимое было удалено. Вы будете автоматически перенаправлены через 1 секунду.
Лучший отвечающий
Вопрос
Мне нужно сделать label.BackColor, что бы он был прозрачный. Ну было видно что бы за ним, например форму.
Ответы
на форме label1
но лейбл за кнопкой не виден
Все ответы
фон для формы установили?
другие контролы не будут видны сквозь лейбл
другие контролы не будут видны сквозь лейбл
Ау! Мне кто-то поможит!? Есть идеи почему у меня не так? Может я не туда код вставил? Так скажите куда.
на форме label1
Всё норм код работает, там просто баг был какойта. После перезапука винды всё норм:)
А что если мне надо поверх кнопки label положить? Что мне сделать что бы label1 был прозрачным, а кнопка нет?
но лейбл за кнопкой не виден
Центры разработки
Обучение
Сообщество
Свяжитесь с нами
Программы
© 2022 Microsoft
Читайте также: