我有一个传入的jpg文件,我可以将颜色设置为透明。当我将图像添加到另一个图像时,这非常有效。
我正在尝试使用iTextSharp将相同的图像添加到PDF中,但我无法使透明度起作用。
我尝试了两种方法,但两种方式都没有。第一种方法是在Bitmap中打开图像,设置透明度,然后在PDF中使用该Bitmap对象。第二种方式(如图所示)是将Bitmap保存到磁盘并将文件打开到iTextSharp图像中。
using (Bitmap b = new Bitmap(Image.FromFile(System.Web.HttpContext.Current.Server.MapPath("~/IncomingData/" + ImageFileName))))
{
b.MakeTransparent(Color.White);
b.Save(System.Web.HttpContext.Current.Server.MapPath("~/IncomingData/" + GuidFileName), System.Drawing.Imaging.ImageFormat.Png);
ImageFileName = GuidFileName;
iTextSharp.text.Image savedImage = iTextSharp.text.Image.GetInstance(Image.FromFile(System.Web.HttpContext.Current.Server.MapPath("~/IncomingData/" + GuidFileName)), iTextSharp.text.Color.WHITE);
savedImage.SetAbsolutePosition(Convert.ToSingle(x + 1.0), Convert.ToSingle(imageY + 12) - Convert.ToSingle(h));
savedImage.ScaleToFit(Convert.ToSingle(w), Convert.ToSingle(h));
contentByte.AddImage(savedImage, true);
}
我已经看到有透明度选项...
savedImage.Transparency = ???
但我不知道该如何投入价值观。我在搜索中找不到任何内容。
答案 0 :(得分:2)
最终找到了答案。
我看到了这......原来我一直在寻找。透明度来找到透明度设置。我没有看到它。 c# .NET CORE adding image with transparency to existing PDF using ITextSharp
我的代码现在......
using (Bitmap b = new Bitmap(Image.FromFile(System.Web.HttpContext.Current.Server.MapPath("~/IncomingData/" + ImageFileName))))
{
b.MakeTransparent(Color.White);
iTextSharp.text.Image savedImage = iTextSharp.text.Image.GetInstance(b, System.Drawing.Imaging.ImageFormat.Png);
savedImage.SetAbsolutePosition(Convert.ToSingle(x + 1.0), Convert.ToSingle(imageY + 12) - Convert.ToSingle(h));
savedImage.ScaleToFit(Convert.ToSingle(w), Convert.ToSingle(h));
contentByte.AddImage(savedImage);
}
请注意,contentByte.AddImage已删除布尔值。