【发布时间】:2021-04-03 22:38:30
【问题描述】:
我正在研究图像处理过程。我正在使用 Aspose 图像处理器。我想按图像类型获取相关类。比如,gif、png、jpeg等。
例如,以下代码块可用于生成 png 图像。我想将其作为通用类型,并希望使用通用类型而不是 PngOptions 和 PngImage。
PngOptions options = new();
using (PngImage image = (PngImage)Image.Create(options, fileInformation.Width, fileInformation.Height))
{
Graphics graphic = new Graphics(image);
graphic.Clear(Color.Green);
// Draw line on image
graphic.DrawLine(new Pen(Color.Blue), 9, 9, 90, 90);
// Resize image
int newWidth = 400;
image.ResizeWidthProportionally(newWidth, ResizeType.AdaptiveResample);
// Crop the image to specified area
AsponseRectangle area = new AsponseRectangle(10, 10, 200, 200);
image.Crop(area);
image.Save();
}
Png Options 继承自 ImageOptionsBase,PngImage 继承自 RasterCachedImage。我正在尝试根据文件类型获取我应该使用哪种选项。你可以看到下面的代码。它返回一个错误,指出“GifOptions 是一种类型,在给定的上下文中无效。”我无法在脑海中完全确定结构。如果有人能给出一个想法,我会很高兴。
private Dictionary<ImageOptionsBase, RasterCachedImage> GetFileTypes(RequestFileType requestFileType)
{
switch (requestFileType)
{
case RequestFileType.Bmp:
return new Dictionary<ImageOptionsBase, RasterCachedImage>() { BmpOptions, BmpImage };
case RequestFileType.Gif:
return new Dictionary<ImageOptionsBase, RasterCachedImage>() { GifOptions, GifImage };
case RequestFileType.Dicom:
break;
case RequestFileType.Djvu:
break;
case RequestFileType.Dng:
break;
case RequestFileType.Emf:
break;
case RequestFileType.Jpeg:
break;
case RequestFileType.Jpeg2000:
break;
case RequestFileType.Pdg:
break;
case RequestFileType.Png:
break;
case RequestFileType.Apng:
break;
case RequestFileType.Psd:
break;
case RequestFileType.Svg:
break;
case RequestFileType.Tiff:
break;
case RequestFileType.Dib:
break;
case RequestFileType.Eps:
break;
case RequestFileType.WebP:
break;
case RequestFileType.Wmf:
break;
case RequestFileType.Cdr:
break;
case RequestFileType.Cmx:
break;
case RequestFileType.Otg:
break;
case RequestFileType.Pdf:
break;
case RequestFileType.Html5Canvas:
break;
case RequestFileType.Emz:
break;
case RequestFileType.Wmz:
break;
case RequestFileType.Tga:
break;
case RequestFileType.Svgz:
break;
default:
break;
}
}
【问题讨论】:
标签: c# generics image-processing aspose