我需要从20像素的顶部剪切.jpg图像。
我有这个代码将图像与对象相关联:
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);
由于
答案 0 :(得分:-1)
请查看问题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中提取图像,您将看到文档中存在完整的图像。