Как использовать систему.Рисунок.Изображение в Rdlc Image Control?

можно использовать System.Drawing.Image в RDLC Image контроля? Все что я читал было 3 способами:

  • база данных
  • поместить ресурс
  • внешний файл

Спасибо, спасибо.

изменить: Следование из этого .NET или библиотека C# для формата CGM (Метафайл компьютерной графики)? теперь я получил изображение в System.Drawing.Image формат и хотите отобразить его как часть отчета (как изображение) - - - это что я хочу сделать.

3 ответов


не уверен, что это то, что вы ищете, но если у вас есть изображение в коде, и вы хотите показать его в отчете, создайте объект-оболочку, который имеет свойство, возвращающее изображение в виде массива байтов, а затем дайте экземпляр этого класса-оболочки с допустимым изображением в отчет в качестве ReportDataSource.

что-то типа:

 ReportDataSource logoDataSource = new ReportDataSource();
 logoDataSource.Name = "LogoDS";
 logoDataSource.Value = new List<LogoWrapper>() { yourLogoWrapper };
 localReport.DataSources.Add(logoDS);

В отчете, то вы можете изображение как бы из базы данных

 =First(Fields!LogoByteArrayProperty.Value, "LogoDS")

обертка выглядит что-то вроде:

 class LogoWrapper{
   ...
   public byte[] LogoByteArrayProperty{
      get{ 
         // Return here the image data
      }
   }
 }

Я использую довольно часто. У него есть то преимущество, что мне не нужно добавлять изображение в БД или добавлять его в качестве ресурса каждого отчета. Кроме того, приложение может сказать, какое изображение следует использовать. Обратите внимание, что данный формат изображения должен быть известен из rdlc-engine. Последний вопрос-как преобразовать систему.рисунок.изображение в массив байтов. Я работаю с WPF и поэтому, я не знаю. Но я уверен, что google ответит на этот вопрос очень надежный.


вы можете использовать опцию источника "база данных" вместе с параметрами для динамического задания источника изображения из байтовых массивов.

Код:

var param2 = new ReportParameter()
               {
                   Name = "CompanyLogo",
                   Values = { Convert.ToBase64String(*ByteArrayImageObject*) }
               };
                ReportViewer1.LocalReport.SetParameters(param2);

расширением rdlc файл:

1-Добавить текстовые параметры 'CompanyLogo' и' MIMEType'

2-Установите для свойства Value изображения значение =System.Convert.FromBase64String(Parameters!CompanyLogo.Value)

3-Установите свойство типа MIME в

=Parameters!MIMEType.Value

4-Используйте "Базу Данных" В Качестве Источника

как я могу отобразить PNG-изображение (в качестве памяти stream) на поверхность отчета .NET ReportViewer



я не совсем уверен, что вы хотите сделать с этим, но вообще это не возможно.Image Control - это просто держатель изображения в файлах RDLC.Эти 3 параметра задают расположение, из которого элемент управления image берет изображение для отображения из-базы данных, встроенного ресурса или внешнего файла. Если вы дадите мне больше информации о том, что вы хотите достичь, я могу дать вам какое-то решение.
С Наилучшими Пожеланиями,
Иордан!--4-->