Thumbnailator 를 이용 하여 그림 크기 조정,회전 과 워 터 마크 를 쉽게 실현 합 니 다.
7450 단어 thumbnailator워 터 마크크기 조정빙빙 돌다
Thumbnailator 는 그림 의 크기 조정,회전,워 터 마크 처 리 를 위 한 아주 간단 한 API 를 제공 합 니 다.
얼마나 쉬 울 까요?코드 한 줄 로 간단하게 그림 처 리 를 완성 할 수 있 습 니 다.형식 은 다음 과 같다.
Thumbnails.of(new File("path/to/directory").listFiles())
.size(640, 480)
.outputFormat("jpg")
.toFiles(Rename.PREFIX_DOT_THUMBNAIL);
물론 Thumbnailator 는 디 테 일 한 부분 이 있 으 니 일일이 말씀 드 리 겠 습 니 다.핵심 API
Thumbnails
Thumbnails 는 Thumbnailator 를 사용 하여 미리 보기 그림 을 만 드 는 주 입구 입 니 다.
그것 은
Thumbnails.Builder
을 초기 화 하 는 인 터 페 이 스 를 제공 했다.먼저 이 인터페이스의 성명 을 보십시오.
//
public static Builder<File> of(String... files) {...}
public static Builder<File> of(File... files) {...}
public static Builder<URL> of(URL... urls) {...}
public static Builder<? extends InputStream> of(InputStream... inputStreams) {...}
public static Builder<BufferedImage> of(BufferedImage... images) {...}
// ( Iterable Java , List、Set)
public static Builder<File> fromFilenames(Iterable<String> files) {...}
public static Builder<File> fromFiles(Iterable<File> files) {...}
public static Builder<URL> fromURLs(Iterable<URL> urls) {...}
public static Builder<InputStream> fromInputStreams(Iterable<? extends InputStream> inputStreams) {...}
public static Builder<BufferedImage> fromImages(Iterable<BufferedImage> images) {...}
Thumbnails 는 파일 이름,파일,네트워크 그림 의 URL,이미지 흐름,이미지 캐 시 등 다양한 방식 으로 구조 기 를 초기 화 할 수 있 음 이 분명 하 다.따라서 실제 수요 에 따라 그림 의 입력 방식 을 유연 하 게 선택 할 수 있다.
주의해 야 할 점:입력 이 여러 대상(용기 대상 을 직접 입력 하거나 가 변 적 인 매개 변수 방식 으로 여러 대상 에 전송 하 든)이 라면 출력 도 여러 대상 을 출력 하 는 방식 을 선택해 야 합 니 다.그렇지 않 으 면 이상 이 발생 할 수 있 습 니 다.
Thumbnails.Builder
Thumbnails.Builder
은 Thumbnails 의 내부 정적 클래스 입 니 다.미리 보기 그림 작업 을 만 드 는 데 사용 할 인 자 를 설정 합 니 다.주:
Thumbnails.Builder
의 구조 함 수 는 사유 함수 입 니 다.따라서 Thumbnails 의 실례 화 함 수 를 통 해서 만 초기 화 할 수 있 습 니 다.매개 변수 함수 설정
Thumbnails.Builder
은 크기 조정 그림 파 라 메 터 를 설정 하기 위해 함수 체인 형식의 인 터 페 이 스 를 제공 합 니 다.크기 함수 설정 을 예 로 들 면:
public Builder<T> size(int width, int height)
{
updateStatus(Properties.SIZE, Status.ALREADY_SET);
updateStatus(Properties.SCALE, Status.CANNOT_SET);
validateDimensions(width, height);
this.width = width;
this.height = height;
return this;
}
this 지침 을 되 돌려 서 매개 변수 함 수 를 체인 호출 방식 으로 사용 할 수 있 도록 합 니 다.형식 은 다음 과 같 습 니 다.
Thumbnails.of(new File("original.jpg"))
.size(160, 160)
.rotate(90)
.watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File("watermark.png")), 0.5f)
.outputQuality(0.8)
.toFile(new File("image-with-watermark.jpg"));
좋 은 점 은 코드 를 크게 간소화 한 것 이다.출력 함수
Thumbnails.Builder
은 생 성 된 크기 조정 도 를 출력 하기 위해 리 셋 함 수 를 제공 합 니 다.함수 설명 은 다음 과 같 습 니 다.
//
public List<BufferedImage> asBufferedImages() throws IOException {...}
public BufferedImage asBufferedImage() throws IOException {...}
//
public List<File> asFiles(Iterable<File> iterable) throws IOException {...}
public List<File> asFiles(Rename rename) throws IOException {...}
public List<File> asFiles(File destinationDir, Rename rename) throws IOException {...}
//
public void toFile(File outFile) throws IOException {...}
public void toFile(String outFilepath) throws IOException {...}
public void toFiles(Iterable<File> iterable) throws IOException {...}
public void toFiles(Rename rename) throws IOException {...}
public void toFiles(File destinationDir, Rename rename) throws IOException {...}
//
public void toOutputStream(OutputStream os) throws IOException {...}
public void toOutputStreams(Iterable<? extends OutputStream> iterable) throws IOException {...}
작업 흐름Thumbnailator 의 작업 절 차 는 매우 간단 하여 세 단계 로 나 눌 수 있 습 니 다.
Thumbnails.Builder
.Thumbnails.Builder
그림 크기 조정 인 자 를 설정 합 니 다.Thumbnails.Builder
출력 그림 파일 이나 그림 흐름.실전
이 글 은 Thumbnailator 의 핵심 API 를 소개 했다.이 어 우 리 는 실전 을 통 해 Thumbnailator 가 무엇 을 할 수 있 는 지 살 펴 볼 수 있다.
Thumbnailator 가 어떤 그림 을 만 들 지 는 설정 매개 변수 에 따라 결 정 됩 니 다.
설치 하 다.
maven 프로젝트 에 의존 도입:
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>[0.4, 0.5)</version>
</dependency>
그림 크기 조정Thumbnails.Builder
의 size 함 수 는 새 그림 의 정확 한 너비 와 높이 를 설정 할 수 있 고 scale 함수 로 크기 조정 비율 을 설정 할 수 있 습 니 다.
Thumbnails.of("oldFile.png")
.size(16, 16)
.toFile("newFile_16_16.png");
Thumbnails.of("oldFile.png")
.scale(2.0)
.toFile("newFile_scale_2.0.png");
Thumbnails.of("oldFile.png")
.scale(1.0, 0.5)
.toFile("newFile_scale_1.0_0.5.png");
oldFile.pngnewFile_scale_1.0_0.5.png
그림 회전
Thumbnails.Builder
의 size 함 수 는 새 그림 의 회전 각 도 를 설정 할 수 있 습 니 다.
Thumbnails.of("oldFile.png")
.scale(0.8)
.rotate(90)
.toFile("newFile_rotate_90.png");
Thumbnails.of("oldFile.png")
.scale(0.8)
.rotate(180)
.toFile("newFile_rotate_180.png");
newFile_rotate_90.png워 터 마크 를 넣다
Thumbnails.Builder
의 워 터 마크 함 수 는 그림 에 워 터 마크 그림 을 추가 할 수 있 습 니 다.첫 번 째 매개 변 수 는 워 터 마크 의 위치 입 니 다.두 번 째 매개 변 수 는 워 터 마크 이미지 의 캐 시 데이터 입 니 다.세 번 째 매개 변 수 는 투명도 입 니 다.
BufferedImage watermarkImage = ImageIO.read(new File("wartermarkFile.png"));
Thumbnails.of("oldFile.png")
.scale(0.8)
.watermark(Positions.BOTTOM_LEFT, watermarkImage, 0.5f)
.toFile("newFile_watermark.png");
wartermarkFile.pngnewFile_watermark.png
일괄 처리 그림
그림 에 워 터 마크 를 대량으로 넣 어 여러 개의 그림 파일 을 어떻게 처리 하 는 지 보 여 드 리 겠 습 니 다.
BufferedImage watermarkImage = ImageIO.read(new File("wartermarkFile.png"));
File destinationDir = new File("D:\\watermark\\");
Thumbnails.of("oldFile.png", "oldFile2.png")
.scale(0.8)
.watermark(Positions.BOTTOM_LEFT, watermarkImage, 0.5f)
.toFiles(destinationDir, Rename.PREFIX_DOT_THUMBNAIL);
총결산이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 에 게 자바 를 배우 거나 사용 하 는 데 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 댓 글 을 남 겨 주 십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
그림을 업로드하여 미리 보기 그림 저장 및 생성java 도구thumbnailator jar 다운로드 주소: httpmvnrepository.comartifactnet.coobirdthumbnailator 프로세스 설명:springMvc의 업로드 파일 프레임워크 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.