Как сделать мое изображение прозрачным?

#c# #image

#c# #изображение

Вопрос:

Я знаю, как сделать элемент управления изображением прозрачным в C #, но есть ли способ сделать изображение (файл .jpeg, а не элемент управления изображением) прозрачным? Или, есть ли способ, когда я делаю элемент управления изображением прозрачным, создать новое изображение, сохранить его по некоторому пути и передать ему содержимое другого элемента управления изображением?

Ответ №1:

Файл JPEG не может быть прозрачным. Однако, если вы сохраните его как изображение в формате PNG, у него будет канал прозрачности.

GIF-файлы также поддерживают прозрачность, но только либо полностью непрозрачные, либо полностью прозрачные. Ничего промежуточного.

PNG — ваш лучший выбор здесь, IMO.

Комментарии:

1. Хорошо, вы знаете, как сделать изображение, а не элемент управления изображением прозрачным?

2. Что вы используете? WinForms? WPF?

Ответ №2:

Вы можете установить свойство непрозрачности элементов управления изображением, чтобы просматривать его с прозрачностью. Но чтобы получить файл изображения с прозрачностью, вам придется преобразовать его в новый файл.

Вот пример, как вы можете это сделать.

 Image image = new Image(); //or however you get this
image.Opacity = 0.5;
RenderTargetBitmap bmp = new RenderTargetBitmap(image.Source.Width, image.Source.Height, 96, 96, PixelFormats.Pbgra32);
bmp.Render(image);

PngBitmapEncoder png = new PngBitmapEncoder();
png.Frames.Add(BitmapFrame.Create(bmp));
using (Stream fs= File.Create("test.png"))
{
png.Save(fs);
}
  

Ответ №3:

Есть свойство transparencycolor. Это то, что вам нужно, если вы хотите отобразить изображение в элементе управления.

Комментарии:

1. Хорошо, вы знаете, как сделать изображение, а не элемент управления изображением прозрачным?