栅格化方法
语法
c#
VB
objective - c
c++
Java
(保龄球)rasterizeToImage:(LTRasterImage *)图像选择:(nullable LTSvgRenderOptions *)选项错误:错误(NSError * *)
公共无效栅格化(RasterImage图像,SvgRenderOptions选项)
参数
例子
这个例子将创建一个光栅图像然后呈现页的PDF文件到表面的图像保存为PNG文件。
使用Leadtools;使用Leadtools.Codecs;使用Leadtools.Drawing;使用Leadtools.Forms.DocumentWriters;使用Leadtools.Svg;使用LeadtoolsExamples.Common;私人静态无效SvgDocumentRasterizeExample (){/ /源PDF文件var源文件=@“C: \ LEADTOOLS21 \资源\ \ Leadtools.pdf图像”;使用(varrasterCodecs =新RasterCodecs ()){/ /加载文档时使用300 DPI的图像rasterCodecs.Options.RasterizeDocument.Load。分辨率= 300;/ /获取页面的文档的大小和数量intpagePixelWidth;intpagePixelHeight;intpageCount;使用(varcodecsImageInfo = rasterCodecs.GetInformation(源文件,真正的)){pagePixelWidth = codecsImageInfo.Width;pagePixelHeight = codecsImageInfo.Height;pageCount = codecsImageInfo.TotalPages;}/ /创建一个光栅图像,将包含所有的页面作为一个长条纹。我们想要这张图片大小限制在200像素宽节省内存varimageWidth = 200;var因素= (双)imageWidth / pagePixelWidth;varimageHeight = (int)(因子* pagePixelHeight * pageCount + 0.5);/ /创建光栅图像使用(varrasterImage = rasterImage。创建(imageWidth imageHeight, 32岁,96年,RasterColor.FromKnownColor (RasterKnownColor.Transparent))){varrenderOptions =新SvgRenderOptions ();renderOptions。写成BackgroundColor = RasterColor.FromKnownColor (RasterKnownColor.Transparent);renderOptions。ClipBounds = LeadRectD.Empty;renderOptions。使用写成BackgroundColor=假;为(varpageNumber = 1;pageNumber < = pageCount;pageNumber + +){/ /加载这个页面为SVG使用(varsvg = rasterCodecs。pageNumber LoadSvg(源文件,零)作为SvgDocument){/ /平如果(svg.IsFlat !)svg.Flat (零);如果(svg.Bounds.IsValid !)svg.CalculateBounds (假);/ /设置背景renderOptions。边界= svg.Bounds.Bounds;/ /转换为目的地,转化为我们的位置和规模的因素var变换= LeadMatrix.Identity;变换。翻译(0,(pageNumber - 1) * pagePixelHeight);变换。规模(因子,因子);renderOptions。变换=变换;/ /渲染这SVG光栅图像表面在指定的位置和大小svg。栅格化(rasterImage renderOptions);}}/ /最后,将光栅图像保存为PNG到磁盘vartargetFile =@“C: \ LEADTOOLS21 \资源\ \ Leadtools_pages_stripe.png图像”;rasterCodecs。保存(rasterImage targetFile RasterImageFormat。Png, 0);}}}
进口Leadtools进口Leadtools.Codecs进口Leadtools.Drawing进口Leadtools.Forms.DocumentWriters进口Leadtools.Svg私人共享子SvgDocumentRasterizeExample ()PDF文件的来源昏暗的源文件作为字符串=“C: \ LEADTOOLS21 \资源\ \ Leadtools.pdf图像”使用rasterCodecs作为新RasterCodecs ()使用300 DPI当加载文档图像rasterCodecs.Options.RasterizeDocument.Load。分辨率= 300的大小和在文档的页面数昏暗的pagePixelWidth作为整数昏暗的pagePixelHeight作为整数昏暗的pageCount作为整数使用codecsImageInfo作为CodecsImageInfo = rasterCodecs.GetInformation(源文件,真正的)pagePixelWidth = codecsImageInfo.WidthpagePixelHeight = codecsImageInfo.HeightpageCount = codecsImageInfo.TotalPages结束使用创建一个光栅图像,将包含所有的页面作为一个长条纹。我们想要这张图片大小限制在200像素宽节省内存昏暗的imageWidth作为整数= 200昏暗的因素作为双=CType(CType(imageWidth双)/ pagePixelWidth,双)昏暗的imageHeight作为整数=CType(因子* pagePixelHeight * pageCount + 0.5,整数)“创建光栅图像使用rasterImage作为RasterImage = RasterImage。创建(imageWidth imageHeight, 32岁,96年,RasterColor.FromKnownColor (RasterKnownColor.Transparent))昏暗的renderOptions作为新SvgRenderOptions ()renderOptions。写成BackgroundColor = RasterColor.FromKnownColor (RasterKnownColor.Transparent)renderOptions。ClipBounds = LeadRectD.EmptyrenderOptions。使用写成BackgroundColor=假为pageNumber作为整数= 1来pageCount加载这个页面作为SVG使用svg作为SvgDocument =CType(rasterCodecs。pageNumber LoadSvg(源文件,没有什么),SvgDocument)“平如果不svg.IsFlat然后svg.Flat (没有什么)如果不svg.Bounds.IsValid然后svg.CalculateBounds (假)的来源是所有的页面renderOptions。边界= svg.Bounds.Bounds“Transfrom是目的地,转化为我们的位置和规模的因素昏暗的变换作为LeadMatrix = LeadMatrix.Identity变换。翻译(0,(pageNumber - 1) * pagePixelHeight)变换。量表(因子,因子)renderOptions。变换=变换渲染这SVG的光栅图像表面指定的位置和大小svg。栅格化(rasterImage renderOptions)结束使用下一个”最后,将光栅图像保存为PNG到磁盘昏暗的targetFile作为字符串=“C: \ LEADTOOLS21 \资源\ \ Leadtools_pages_stripe.png图像”rasterCodecs。保存(rasterImage targetFile RasterImageFormat。Png, 0)结束使用结束使用结束子