이 기사에서는 Java에서 구현 된 고품질 스케일링 클래스의 정의 및 사용에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
나는 많은 것을 발견했지만 이상적이지 않았고 마침내 외국인에게서 그들을 쓴 사람을 찾았습니다. 외국인이 쓴 것이 실제로 굉장하다는 것을 인정해야합니다.
패키지 com.test; import com.sun.image.codec.jpeg.jpegimageencoder; import com.sun.image.codec.jpeg.jpegcodec; import com.sun.image.codec.jpeg.jpegencodeparam; import javax.swing java.io.ioexception; import java.awt.*; import java.awt.image.bufferedimage; import java.awt.image.kernel; import java.awt.image.convolveop; public imageUtil {public static void resize (파일 originalfile, file resizedfile, inf restizedfile, inf restizedfile) {New New OregalArgumentException ( "품질은 0과 1 사이 여야한다"); } imageicon ii = new ImageIcon (OriginalFile.getCanonicalPath ()); 이미지 i = ii.getImage (); 이미지 resizeimage = null; int iwidth = i.getWidth (null); int iheight = i.getheight (null); if (iwidth> iheight) {resizeimage = i.getScaledInstance (newwidth, (newwidth * iheight) / iwidth, image.scale_smooth); } else {resizeImage = i.getScaledInstance ((NewWidth * iwidth) / iheight, newwidth, image.scale_smooth); } //이 코드는 이미지의 모든 픽셀이로드되도록합니다. image temp = new ImageIcon (resizedImage) .getImage (); // 버퍼링 된 이미지를 만듭니다. bufferedImage bufferedImage = new bufferedImage (temp.getWidth (null), temp.getheight (null), bufferedImage.type_int_rgb); // 이미지를 버퍼링 된 이미지로 복사합니다. 그래픽 g = bufferedImage.creategraphics (); // 배경을 청소하고 이미지를 페인트합니다. G. 세트 컬러 (Color.white); g.fillRect (0, 0, temp.getWidth (null), temp.getheight (null)); G.DrawImage (Temp, 0, 0, Null); g.dispose (); // 부드럽습니다. float sleaftenfactor = 0.05f; float [] sftenarray = {0, sodtenfactor, 0, sodtenfactor, 1- (sodtenfactor * 4), SoftenFactor, 0, SweftenFactor, 0}; 커널 커널 = 새로운 커널 (3, 3, sweftenarray); Convolbeop Cop = New Convolbeop (Kernel, Convolbeop.edge_no_op, null); bufferedImage = cop.filter (bufferedImage, null); // jpeg를 파일에 씁니다. fileoutputStream out = 새 FileOutputStream (resizedFile); // 이미지를 JPEG 데이터 스트림으로 인코딩합니다 jpegimageEncoder encoder = jpegcodec.createjpegencoder (out); jpegencodeparam param = encoder .getDefaultJpegencodeparam (bufferedImage); param.setquality (품질, 참); encoder.setjpegencodeparam (param); encoder.encode (bufferedImage); } // 예제 공개 정적 void main (string [] args)은 ioexception {// file or 1f); File OriginalImage = 새 파일 ( "C : //1207.gif"); resize (OriginalImage, 새 파일 ( "C : //1207-0.jpg"), 150, 0.7f); resize (OriginalImage, 새 파일 ( "C : //1207-1.jpg"), 150, 1f); }}더 많은 Java 관련 컨텐츠를 위해이 사이트에 관심이있는 독자는 "Java 이미지 운영 기술 요약", "Java 날짜 및 시간 운영 기술 요약", "Java Operation Dom Node Skills 요약", "Java 파일 및 디렉토리 운영 기술 요약"및 "Java 데이터 구조 및 알고리즘의 자습서"를 볼 수 있습니다.
이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.