Экспорт изображения из приложения WinForms в PowerPoint с прозрачностью - PullRequest
1 голос
/ 10 августа 2010

У меня были проблемы с вставкой изображения из моего приложения в PowerPoint при сохранении прозрачности.У меня есть изображение, хранящееся как тип System.Drawing.Graphics, которое я затем преобразовываю в тип System.Drawing.Bitmap и копирую в буфер обмена.Во время этого процесса я также использую Bitmap.MakeTransparent(Color.Black), чтобы все в исходном документе, которое было черным, было прозрачным при вставке изображения.

if (GraphicsInterface.getGraphics() != null)
{
    Image image = GraphicsInterface.getGraphics();
    Bitmap bitmap = new Bitmap(image);
    bitmap.MakeTransparent(Color.Black);
    Clipboard.SetImage(bitmap);
}

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

Мой подход правильный?Есть ли способ согласовать прозрачные значения в .net и PowerPoint?Или нужно будет сделать прозрачность вручную после вставки изображения в PowerPoint?

1 Ответ

4 голосов
/ 10 августа 2010

Мне удалось воспроизвести эту проблему, загрузив известный исправный файл с прозрачностью. Я немного обыскал и, наконец, смог найти что-то, что позволило прозрачно поместить изображение в буфер обмена, а затем успешно вставил его в PowerPoint 2007

Возможно, вам все равно придется поработать над магией с операцией MakeTransparent(), но это должно помочь вам начать. Кроме того, не забудьте правильно утилизировать изображения. Я пропустил using заявления для ясности.

Image image = Image.FromFile(@".\Star.png");
MemoryStream stream = new MemoryStream();
image.Save(stream, ImageFormat.Png);
DataObject data = new DataObject("PNG", stream);
Clipboard.SetDataObject(data, true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...