栅格化方法
语法
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.Width
pagePixelHeight = codecsImageInfo.Height
pageCount = 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.Empty
renderOptions。使用写成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)
结束使用
结束使用
结束子