2016-04-21 14 views
0

Ich muss ein .jpg Bild von oben 20 Pixel schneiden.Schnitt jpg iTextSharp.text.Image Von oben

Ich habe diesen Code, um das Bild auf das Objekt zu assoziieren:

iTextSharp.text.Rectangle rect = pdf.AcroFields.GetFieldPositions("BarCode")[0].position; 
iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(Application.StartupPath + segnacollo.BarCode); 
img.ScaleAbsoluteHeight(rect.Height); 
img.ScaleAbsoluteWidth(rect.Width); 
img.SetAbsolutePosition(rect.Left, rect.Bottom); 
pdf.GetOverContent(1).AddImage(img); 

Dank

+1

Wie hoch ist das Budget des Projekts? Vielen Dank. – Alex

+0

Müssen Sie aus einer PDF ein JPEG machen? Oder fügen Sie einem PDF ein vorhandenes JPEG hinzu und möchten diese Pixel abschneiden? Oder gibt es eine PDF-Datei, in der ein Bild enthalten ist und Sie einige dieser Pixel von der Spitze abschneiden möchten? –

+0

Ich füge ein vorhandenes JPG zu einem PDF hinzu und ich muss diese Pixel abschneiden – Ale

Antwort

0

Bitte nehmen Sie sich einen Blick auf die Antwort auf die Frage How to give an image rounded corners?

In diesem Beispiel Clip wir ein Bild, so dass es abgerundete Ecken bekommt:

Image img = Image.GetInstance(some_path_to_an_image); 
float w = img.ScaledWidth; 
float h = img.ScaledHeight; 
PdfTemplate t = writer.DirectContent.CreateTemplate(w, h); 
t.Ellipse(0, 0, w, h); 
t.Clip(); 
t.NewPath(); 
t.AddImage(img, w, 0, 0, h, 0, -600); 
Image clipped = Image.GetInstance(t); 

Sie Teil des oberen Rand des Bildes entfernen möchten, können Sie Ihren Code noch einfacher machen:

Image img = Image.GetInstance(some_path_to_an_image); 
float w = img.ScaledWidth; 
float h = img.ScaledHeight; 
PdfTemplate t = writer.DirectContent.CreateTemplate(w, h - 20); 
t.AddImage(img, w, 0, 0, h, 0, 0); 
Image clipped = Image.GetInstance(t); 

In diesem Beispiel habe ich eine PdfTemplate, die mit 20 Benutzereinheiten kleiner als das Originalbild ist. Ich füge das Originalbild zu dieser Vorlage hinzu und erstelle ein neues Bild aus dieser Vorlage.

Wichtig: Dies klammert das Bild visuell in dem Sinne ab, dass Sie den oberen Streifen (20 Benutzereinheiten hoch) im PDF nicht sehen. Wenn Sie jedoch das Bild aus der PDF extrahieren, sehen Sie, dass das gesamte Bild im Dokument vorhanden ist.

+0

Danke für Ihre Antwort. Es tut mir leid, aber ich habe nicht verstanden, wie Sie die Datei als JPG und was ist Writer in Ihrem Code speichern. – Ale

+1

In den Kommentaren sagst du, dass du ein PDF brauchst, kein JPG. iTextSharp speichert keine JPGs, nur PDFs. –