この記事では、Javaに実装された高品質のスケーリングクラスの定義と使用について説明します。次のように、参照のために共有してください。
私はそれらの多くを見つけましたが、理想的ではありませんでした、そして最終的に外国人からそれらを書いた誰かを見つけました。私は、外国人が書いたものが本当に素晴らしいことを認めなければなりません。
パッケージcom.test; import com.sun.image.codec.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 class imageutil {public Static resizeize(file risizedfile、int file static resize、in int file static resize) 1){新しいIllegalargumentException( "品質は0〜1の間でなければならない)を投げる); } ImageIcon II = new ImageIcon(OriginalFile.getCanonicalPath());画像i = ii.getimage(); Image resizedImage = null; int iWidth = i.getWidth(null); int iheight = i.getheight(null); if(iwidth> iheight){resizedImage = i.getScaledInstance(newWidth、(newWidth * iheight) / iWidth、image.scale_smooth); } else {resizedImage = 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.setcolor(color.white); g.fillrect(0、0、temp.getwidth(null)、temp.getheight(null)); G.drawimage(Temp、0、0、null); g.dispose(); //柔らかくします。 softenfactor = 0.05f; float [] softenArray = {0、softenfactor、0、softenterfactor、1-(softenfactor * 4)、softentyfactor、0、softenfactor、0};カーネルカーネル= new Kernel(3、3、SoftenArray); Convolveop cop = new convolveop(kernel、convolveop.edge_no_op、null); bufferedimage = cop.filter(bufferedimage、null); // jpegをファイルに書き込みます。 fileoutputStream out = new fileoutputStream(semizedFile); // JPEGデータストリームJPEGIMAGEENCODER encoder = jpegcodec.createjpegencoder(out)として画像をエンコードします。 jpegencodeparam param = encoder .getDefaultjpegencodeparam(bufferedimage); param.setquality(quality、true); encoder.setjpegencodeparam(param); encoder.encode(bufferedimage); } //使用の例public static void main(string [] args)throws ioexception {// file originalimage = new file( "c://11.jpg"); // resize、new file( "c://11-0.jpg")、150、0.7f); 1f);ファイルOriginalImage = new File( "c://1207.gif"); resize(originalimage、new file( "c://1207-0.jpg")、150、0.7f); sezize(originalimage、new file( "c://1207-1.jpg")、150、1f); }}Java関連のコンテンツについては、このサイトに興味のある読者は、「Java画像操作スキルの要約」、「Javaの日付と時刻の操作スキルの概要」、「Java操作DOMノードスキルの概要」、Javaファイルの概要とディレクトリ操作スキルの概要」、「Javaデータ構造の概要」、およびAlgorithmm」を見ることができます。
この記事がみんなのJavaプログラミングに役立つことを願っています。