2016-04-21 23 views
0

我需要從20像素的頂部剪切.jpg圖像。切jpg iTextSharp.text.Image頂部

我有這樣的代碼的映像關聯對象:

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); 

感謝

+1

項目的預算是多少?謝謝。 – Alex

+0

你需要從PDF製作JPEG嗎?或者您是否將現有的JPEG添加到PDF中,並且希望切斷這些像素?或者是否有PDF格式的內部圖像,並且您想從頂部切掉一些像素? –

+0

我正在添加一個現有的JPG到PDF,我需要切斷這個像素 – Ale

回答

0

請看看答案的問題How to give an image rounded corners?

在這個例子中,我們剪輯的使其變圓角:

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); 

你想刪除的圖像的頂部的一部分,你可以讓你的代碼更簡單:

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); 

在這個例子中,我創建了一個PdfTemplate比原始圖像更小的20個用戶單位。我將原始圖像添加到該模板,然後從該模板創建一個新圖像。

重要提示:這樣可以直觀地剪切圖像,因爲您不會在PDF中看到頂部條(20個用戶單位高)。但是,如果您從PDF中提取圖像,則會看到完整圖像出現在文檔中。

+0

感謝您的回覆。對不起,但我不知道如何將文件另存爲JPG,以及代碼中的作者是什麼。 – Ale

+1

在評論中你說你需要一個PDF,而不是JPG。 iTextSharp不保存JPG,只保存PDF。 –