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