2009-10-21 3 views
4

사이트의 갤러리에있는 이미지에 워터 마크를 삽입해야하는 웹 사이트를 만들고 있습니다. 나는 우리가 업로드를하기 전에 수동으로 이미지를 추가하는 것보다 (웹 인터페이스를 통해) 이미지가 애플리케이션에 업로드 될 때 워터 마크를 프로그램 방식으로 추가하는 것을 선호한다.업로드시 이미지 워터 마킹

내가 할 수있는 간단한 방법 (아마도 이미지 라이브러리입니까?)이 있습니까?

Grails에서 사이트를 구축 중이므로 Groovy 또는 Java 솔루션이 좋을 것입니다.

답변

5

이것은 당신이 내가 생각 원하는 코드 ...

BufferedImage source = ...; 
BufferedImage watermark = ...; 
Graphics2D g = source.createGraphics(); 
g.drawImage(watermark, x, y, null); 
g.dispose(); 
3

저작권 및 프로세스가 허용되는지 확실하지 않지만 업로드시 이미지를 변경하는 대신 이미지가 표시 될 때 워터 마크를 렌더링하는 것이 좋습니다. 이렇게하면 워터 마크를 변경하고 원본 이미지에 액세스 할 수 있습니다.

+1

좋은 지적을 할 수있는 워터 마크에 : 원본을 파괴하지 않습니다. 그러나 모든 다운로드에 워터 마크를 겹치기를 원하지는 않지만 이미지를 업로드 할 때 여전히이를 원합니다. – Bombe

1

많은 이미지 조작을하는 Grails 애플리케이션을 작업 해 왔으며 ImageMagick을 호출하기로했습니다. Grails를위한 Image Tools 플러그인은 단순한 워터 마킹에 적합 할 수도 있지만 IM이 제공해야 할 추가 기능이 필요했습니다.

Groovy의 프로세스 추가로 IM을 호출하고 오류/출력 스트림을 구문 분석하는 것이 매우 쉽습니다. IM 플러그인을 출시 할 시간이 있었다면 유감스럽게 생각합니다.

환호

+0

+1 ImageMagick. 필자는 이미지 조작에 대한 여러 접근법을 평가했으며 IM이 최상의 성능 (안정성, 품질)이라고 평가했습니다. Java 용 래퍼 라이브러리도 있습니다. http://im4java.sourceforge.net/ –

+0

간단합니다. 따라서 ImageMagick을 가져 오는 것을 피하려면 <10 LOC에서 할 수있는 작업을 수행하십시오. 그러나 그 아이디어에 감사드립니다. –

1

BufferedImage를 작성합니다. 업로드 된 이미지를 BufferedImage에 그린 다음 워터 마크를 BufferedImage에 그립니다.

0

당신이 Grails의를 사용하는 경우, 내가 burningimage 플러그인 https://grails.org/plugin/burning-image

를 사용하여 이미지를 워터 마크를 추가하거나 크기를 조정하는 가장 쉬운 방법을 생각입니다

매우 사용하기 쉽고 문서화가 잘되어 있습니다. 여기에 문서를 찾기 : https://code.google.com/p/burningimage/

을 간단하게 다음과 같은

burningImageService.doWith('path/to/my/file', 'path/to/output/dir') 
       .execute { 
        it.watermark('path/to/watermark', ['top':10, 'bottom': 10]) 
       } 
관련 문제