2014-12-02 3 views
1
내가 iText를 내 배경 이미지를 투명하게 만들

변경 배경 이미지 워터 마크 또는 # ASP.net c를 불투명도를 변경하려면

여기

이미지에 대한 내 코드입니다 :

string root = Server.MapPath("~"); 
    string parent = Path.GetDirectoryName(root); 
    string grandParent = Path.GetDirectoryName(parent); 
    string imageFilePath = parent + "/Images/logo.png"; 
    iTextSharp.text.Image jpg = iTextSharp.text.Image.GetInstance(imageFilePath); 
    jpg.ScaleToFit(1700, 800); 
    jpg.Alignment = iTextSharp.text.Image.UNDERLYING; 
    jpg.SetAbsolutePosition(100, 250); 
    jpg.ScaleAbsoluteHeight(500); 
    jpg.ScaleAbsoluteWidth(500); 

어떤 생각이?

답변

1

예를 들어 BackgroundTransparant을 살펴보십시오. 이 예제는 BackgroundImage 예제의 변형입니다.

코드에서 Document 인스턴스에 Image을 추가합니다. 괜찮습니다. 그러나 그러한 이미지를 투명하게 만들고 싶다면 부드러운 마스크를 도입해야합니다. 그건 어려운 일이 아니다, 그러나 당신의 배경을 투명하게하는 쉬운 방법이있다 : 직접 콘텐츠에 이미지를 추가하고, 불투명도를 정의하는 PdfGState 소개 :

PdfContentByte canvas = writer.getDirectContentUnder(); 
Image image = Image.getInstance(IMAGE); 
image.SetAbsolutePosition(0, 0); 
canvas.SaveState(); 
PdfGState state = new PdfGState(); 
state.setFillOpacity(0.6f); 
canvas.setGState(state); 
canvas.addImage(image); 
canvas.restoreState(); 

차이를 볼 수 background_transparent.pdfbackground_image.pdf 비교.

내 예제는 자바로 작성된하지만,이 C에 # 포트에 매우 쉽게되어

PdfContentByte canvas = writer.DirectContentUnder; 
Image image = Image.GetInstance(IMAGE); 
image.SetAbsolutePosition(0, 0); 
canvas.SaveState(); 
PdfGState state = new PdfGState(); 
state.FillOpacity = 0.6f; 
canvas.SetGState(state); 
canvas.AddImage(image); 
canvas.RestoreState();