如何从媒体库中检索位图格式的图像

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...
}