jpgファイルがあり、色を透明に設定できます。イメージを別のイメージに追加すると、これは完全に機能します。iTextSharpを使用したPDFの画像の透明度
iTextSharpを使用して同じ画像をPDFに追加しようとしていますが、透明性が確保できません。
私は2つの方法を試みましたが、どちらも機能していません。最初の方法は、画像をビットマップで開き、透明度を設定してから、そのBitmapオブジェクトをPDFで使用することでした。 2番目の方法(ここに示す)では、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 = ???
が、私は値を入れているかわかりません。私は検索で何かを見つけることができません。
ここでは、JPEGは透過性をサポートしていないため、意味がありません。どのように「イメージを別のイメージに追加するのですか? –
JPEGは透明度をサポートしていませんが、それを行ってください。透明になり、.pngとして保存できます。それがMakeTransparentの機能です。 この質問では、別の画像に追加するのではなく、PDFに追加しています。透明な "jpg"を別のイメージに追加するには... ビットマップb =(ビットマップ)Image.FromFile(System.Web.HttpContext.Current.Server.MapPath( "〜/ IncomingData /" + GuidFileName)); b.MakeTransparent(Color.White); graphics.DrawImage(b、x、y - 10、newWidth、newHeight); – David
あなたの2つの試みのどちらが有効かどうかはどうやって確認しましたか? – mkl