如何从媒体库中检索位图格式的图像
How to retrieve an Image in Bitmap format from the Media Library
我正在 Sitecore 上执行图像处理。
鉴于图像的 ID,我希望能够以位图格式检索它 - 我目前不知道如何执行这样一个看似简单的任务,而不是因为缺乏搜索。
编辑:我说的是位图对象 (System.Drawing.Bitmap),原因是我需要使用第三方图形库 (AForge) 来处理它们。
我终于知道了;这是将驻留在 Sitecore 媒体库中的图像转换为 System.Drawing.Bitmap 格式的代码:
var item = new Sitecore.Context.Database.GetItem(imageId);
var mediaItem = Sitecore.Data.Items.MediaItem(item);
var image = new System.Drawing.Bitmap(mediaItem.GetMediaStream());
要从 MediaItem
实例获取 Bitmap
数据,您需要访问 Stream
,这可以通过 GetMediaStream()
.[=20 完成=]
这是一次性资源,因此应该使用 using
。
Bitmap
然后可以将 Stream
作为参数,但是由于 Bitmap
是 也是 一次性的, using
应该再次使用:
var mediaItem = ...get the media from a field or database...
using (var stream = mediaItem.GetMediaStream())
using (var bitmap = new Bitmap(stream))
{
...use the bitmap...
}
我正在 Sitecore 上执行图像处理。
鉴于图像的 ID,我希望能够以位图格式检索它 - 我目前不知道如何执行这样一个看似简单的任务,而不是因为缺乏搜索。
编辑:我说的是位图对象 (System.Drawing.Bitmap),原因是我需要使用第三方图形库 (AForge) 来处理它们。
我终于知道了;这是将驻留在 Sitecore 媒体库中的图像转换为 System.Drawing.Bitmap 格式的代码:
var item = new Sitecore.Context.Database.GetItem(imageId);
var mediaItem = Sitecore.Data.Items.MediaItem(item);
var image = new System.Drawing.Bitmap(mediaItem.GetMediaStream());
要从 MediaItem
实例获取 Bitmap
数据,您需要访问 Stream
,这可以通过 GetMediaStream()
.[=20 完成=]
这是一次性资源,因此应该使用 using
。
Bitmap
然后可以将 Stream
作为参数,但是由于 Bitmap
是 也是 一次性的, using
应该再次使用:
var mediaItem = ...get the media from a field or database...
using (var stream = mediaItem.GetMediaStream())
using (var bitmap = new Bitmap(stream))
{
...use the bitmap...
}