具有透明度的图像通常被称为具有alpha通道的图像,Alpha通道包含有关图像的部分或完全透明度的信息,主要用于计算机动画。RGB图像最多可包含24个alpha通道,它们中的每一个都包含有关图像的一部分透明度信息。管理这些通道可以使图像的一些部分在合适的时间透明显示。支持透明度的最常见图像栅格格式:
- PSD—Adobe Photoshop的原生格式。支持完全和部分透明度;
- TIFF—最常用于存储扫描图像,因为它允许存储有关深度颜色的信息。这种质量使得tiff的格式在打印时很受欢迎,支持部分和完全透明;
- GIF - 这种格式在Web图形中最受欢迎,因为文件的大小非常小。允许仅存储有关完全透明的信息,不能制作半透明的图像;
- PNG在Web图形中也很常见,但文件较大并且支持半透明。
在本文中将介绍在将FastReport.Net报表导出为PDF时如何关闭对半透明的支持。应用程序代码:
Report report = new Report(); report.Load("@/../../Transparency.frx"); PDFExport export = new PDFExport(); export.TransparentImages = false; report.Prepare(); report.Export(export, "result.pdf");
从代码中可以看出,PDF导出具有TransparentImages属性,允许禁用(false)或启用(true)透明度支持。导出为PDF时,三个报表对象表示为图片:Picture(图片),RichText和,Chart(图表),TransparentImages属性适用于所有这些属性。
导出图像
png格式的原始图像没有背景:
现在将Picture对象添加到图片的人物中并将此图片加载到其中,为人物设置彩色背景。
红色色调在图像的背景上很明显,这意味着图片具有透明背景。如何将此报表导出为PDF格式,与TransparentImages = ture属性的值类似:
像设计器一样,设置TransparentImages = false:
图片的透明背景现在设置成白色
RichText导出
RichText在透明背景下的样式:
虽然对象具有透明背景,但是无法删除白色衬底的文字。设置属性TransparentImages = false:
背景设置成白色,鉴于无法删除白色基底文本,对于RichText,TransparentImages属性不是很适用。
导出图表对象
Chart对象有许多背景设置,要获得对象的透明背景,需要在对象属性中设置以下设置:
BackColor = Transparent; BorderSkin(SkinStyle) = None; BorderLineColor = Transparent;
打开Legends集合,选择图例并为标题设置TitleBackColor = Transparent。打开ChartAreas集合,选择一个条目,并将Transparent的值设置为BackColor。图表:
使用属性TransparentImages = true的值导出为PDF时,图表看起来与上图中的相同。如果设置TransparentImages = false,会得到一个白色背景: