2011-04-21 5 views
2

나는 자바 프로그램이 일부 동적 텍스트를 작성해야합니다 배경 템플릿,자바 g.drawString() 고해상도를 얻는 방법?

BufferedImage image = ImageIO.read(new File("background.jpg")); 
Graphics g = image.createGraphics(); 

g.setFont(new Font("DejaVu Sans",Font.PLAIN,18)); 
g.drawString("Hello,World!",10,10); 

같은 방식으로 작성, 나는 자바 쓴 텍스트 주위에 약간의 해상도에 문제가 있습니다.

Java로 이미지에 고해상도 텍스트를 쓰는 방법은 무엇입니까?

업데이트 : 여기에 앤티 앨리어싱이 적용된 예입니다. enter image description here

g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); 
+2

해상도는 사용하는 글꼴과 이미지의 픽셀 수에 의해 결정됩니다. 아마도 앤티 앨리어싱을 찾고 있습니까? –

+0

고맙습니다, 기사를 읽은 다음 앤티 앨리어싱이 아니며 배경에 매우 해상도가 있습니다. 메서드 drawString()에 의해 텍스트를 작성할 때 텍스트 주위에 빈약 한 픽셀 수의 사각형이 나타납니다. –

+1

샘플 이미지 (스크린 샷)를 추가했다면 의미가 분명 해졌을 것입니다. –

답변

3

문제는 텍스트 드로잉,하지만 파일의 후속 저장되지 않습니다 : 당신은 JPEG 압축을 사용하는 경우, 당신은 당신의 텍스트처럼 특별히 주위에 날카로운 모서리, compression artifacts을 얻을 것이다.

JPG를 사용하지 않는 것 외에는 실제적인 방법이 없습니다.

+1

대신 PNG를 사용하거나 JPEG 압축 품질을 높게 설정하십시오. 압축 품질을 설정하는 예제 스 니펫은 다음과 같습니다. http://www.hide-n-seak.com/hnsnet/snippets/jpegOutput.html – Spoike

관련 문제