由网友(女施主,请自重)分享简介:我正在尝试从源jpeg中提取缩略图,并使用C#ImageSharp库将它们保存到文件系统。我看到在组件的智能感知中有一些提到它:SixLabors.ImageSharp.Image.Metadata.ExifProfile.CreateThumbnail()...但我似乎找不到正确调用它的任何文档或示例。我确实找...我正在尝试从源jpeg中提取缩略图,并使用C#ImageSharp库将它们保存到文件系统。我看到在组件的智能感知中有一些提到它:
SixLabors.ImageSharp.Image.Metadata.ExifProfile.CreateThumbnail()
![jpeg图像500像素是什么意思](https://p.xsw88.cn/allimgs/daicuo/20230903/2823.png)
...但我似乎找不到正确调用它的任何文档或示例。
我确实找到了这个:
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
//method code:
Image<TPixel> thumbnail = image.Metadata.ExifProfile.CreateThumbnail<TPixel>();
![jpeg图像500像素是什么意思](https://p.xsw88.cn/allimgs/daicuo/20230903/2823.png)
https://docs.sixlabors.com/api/ImageSharp/SixLabors.ImageSharp.Metadata.Profiles.Exif.ExifProfile.html
...但我需要找到TPixel类型的位置才能使其工作。VisualStudio无法识别它,我似乎无法找到命名空间或正确使用它:
找不到类型或命名空间名称‘TPixel’(是否缺少Using指令或程序集引用?)
旧版Windows.NET框架可以为System.Drawing.Image.Image.GetThumbnailImage()
执行此操作,并且运行良好。
编辑:使用tocsoft的答案,我将代码更改为:
if (image.Metadata.ExifProfile != null)
{
Image<Rgba32> thumbnail = image.Metadata.ExifProfile.CreateThumbnail<Rgba32>();
thumbnail.Save(thumbnailPath, encoder);
}
...但是,image.Metadata.ExifProfile
为空,这是意外的,因为我知道这些源图像具有EXIF数据。
编辑:实际上,它现在正在工作。成功了!谢谢!
推荐答案
TPixel
将是SixLabors.ImageSharp.PixelFormats
命名空间中的任何像素格式。但是,除非您计划与其他需要以特定方式在内存中放置像素数据的系统进行互操作,否则您可能只想使用Rgba32
Image<Rgba32> thumbnail = image.Metadata.ExifProfile.CreateThumbnail<Rgba32>();
相关推荐
最新文章