Ich habe eine eingehende jpg-Datei, die ich eine Farbe auf transparent setzen kann. Wenn ich das Bild zu einem anderen Bild hinzufüge, funktioniert das perfekt.Bildtransparenz in PDF mit iTextSharp
Ich versuche, das gleiche Bild in eine PDF mit iTextSharp hinzufügen, aber ich kann die Transparenz nicht zur Arbeit kommen.
Ich habe zwei Möglichkeiten ausprobiert, aber weder funktioniert. Der erste Weg bestand darin, das Bild in einer Bitmap zu öffnen, Transparenz festzulegen und dieses Bitmap-Objekt dann in der PDF-Datei zu verwenden. Der zweite Weg (hier gezeigt) war das Speichern der Bitmap auf der Festplatte und das Öffnen der Datei in das iTextSharp-Image.
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);
}
ich gesehen habe, dass es eine Option Transparenz ist ...
savedImage.Transparency = ???
aber ich weiß nicht, was in den Werten zu setzen. Ich kann bei meinen Suchen nichts finden.
Etwas hier macht keinen Sinn, da JPEG keine Transparenz unterstützt. Wie fügen Sie das Bild zu einem anderen Bild hinzu? –
JPEG unterstützt keine Transparenz, aber versuchen Sie es. Es wird transparent, was Sie dann als .png speichern können. Das macht MakeTransparent. In dieser Frage, die ich nicht zu einem anderen Bild hinzufüge, füge ich ein PDF hinzu. Um den transparent "jpg" auf ein anderes Bild hinzufügen ... Bitmap b = (Bitmap) Image.FromFile (System.Web.HttpContext.Current.Server.MapPath ("~/IncomingData /" + GuidFileName)); b.MakeTransparent (Farbe.Weiß); graphics.DrawImage (b, x, y - 10, neue Breite, neue Höhe); – David
Wie haben Sie überprüft, ob einer Ihrer beiden Versuche funktioniert hat oder nicht? – mkl