この記事では、Java Picturesに透かしを追加するためのサンプルコードを紹介します。 Javaに透かしを実装するのは非常に便利です。透かしは写真やテキストにすることができます。特定のコンテンツは次のとおりです
パッケージmichael.io.image; java.awt.alphacompositeをインポートします。 java.awt.graphics2dをインポートします。 java.awt.imageをインポートします。 Java.awt.RenderingHintsをインポートします。 java.awt.image.bufferedimageをインポートします。 java.io.fileをインポートします。 java.io.fileinputStreamをインポートします。 java.io.fileoutputStreamをインポートします。 java.io.inputStreamをインポートします。 java.io.outputStreamをインポートします。 javax.imageio.imageioをインポートします。 javax.swing.imageiconをインポートします。 com.sun.image.codec.jpeg.jpegcodecをインポートします。 com.sun.image.codec.jpeg.jpegimageCoderをインポートします。 com.sun.image.codec.jpeg.jpegimageencoderをインポートします。 /** * watermark * @blog http://sjsky.iteye.com * @author michael */public class memarklogobyicon {/** * @param args */public static void main(string [] args){string srcimgpath = "d:/test/michael/myblog_01.png";文字列iconpath = "d:/test/michael/blog_logo.png";文字列ターゲットパス= "d:/test/michael/img_mark_icon.jpg"; string targetpath2 = "d:/test/michael/img_mark_icon_rotate.jpg"; //画像に透かしを追加しますimagemarklogobyicon.markimagebyicon(iconpath、srcimgpath、ターゲットパス); //画像に透かしを追加する、透かし回転-45 ImageMarkLogobyicon.MarkimageByicon(Iconpath、Srcimgpath、TargetPath2、-45); } / ***画像に透かしを追加* @param Iconpath透かしパス* @param Srcimgpathソースパス* @paramターゲットターゲット画像パス* / public static void markimagebyicon(string iconpath、string srcimgpath、string target path){markimagebyicon、iconpath、ターゲットパス、ターゲットパス、ターゲット、ターゲットパス); } / ***画像に透かしを追加し、透かしの回転角を設定します* @param Iconpath透かし画像パス* @param SRCIMGPATHソースイメージパス* @Paramターゲットパスターゲット画像パス* /パブリックサチックボイドMarkimageByicon(String Iconpath、String、String、String MarkimageByicon( try {image srcimg = imageio.read(new file(srcimgpath)); bufferedimage buffimg = new bufferedimage(srcimg.getWidth(null)、srcimg.getheight(null)、bufferedimage.type_int_rgb); //ブラシオブジェクトを取得する//グラフィックg = buffimg.getgraphics(); graphics2d g = buffimg.creategraphics(); //ラインセグメントG.SetRenderingHintのジャグエッジ処理を設定します(renderinghints.key_interpolation、renderinghints.value_interpolation_bilinear); g.drawimage(srcimg.getscaledinstance(srcimg.getWidth(null)、srcimg .getheight(null)、image.scale_smooth)、0、0、null); if(null!= degree){//透かし回転g.rotate(math.toradians(degree)、(double)buffimg.getwidth() / 2、(double)buffimg .getheigh() / 2)を設定します。 } //透かし画像のパスは一般にGIFまたはPNGであるため、透明度をImageIcon imgicon = new ImageIcon(IconPath)に設定できます。 //画像オブジェクトを取得します。画像img = imgicon.getimage();フロートアルファ= 0.5F; //透明性g.setComposite(alphacomposite.getInstance(alphacomposite.src_atop、alpha)); //透かし画像の位置G.drawimage(IMG、150、300、null)を示します。 g.setComposite(alphacomposite.getInstance(alphacomposite.src_over)); g.dispose(); os = new fileoutputStream(targerPath); // Image Imageio.write(buffimg、 "jpg"、os)を生成します。 System.out.println( "画像がアイコンシールの追加が完了しました..."); } catch(Exception e){e.printstacktrace(); }最後に{try {if(null!= os)os.close(); } catch(Exception e){e.printstacktrace(); }}}}別の例を共有させてください:
Import java.awt.color; Import java.awt.font; Import java.awt.graphics; Import java.awt.image; Import java.awt.image.bufferedimage; Import java.io.file; Import java.io.fileOutputStream; Import.imageio.imageio; com.sun.image.codec.jpeg.jpegcodec; import com.sun.image.codec.jpegimageencoder; public final class imageutils {public imageutils(){}/** * public final static string getpressimgpath(){return applicationContext * .getRealPath( "/template/data/util/shuiyin.gif"); } *//** *画像に画像を印刷 * * @param pressimg- *透かしfile * @param targetimg- *ターゲットファイル * @param x * -x座標 * @param y * -y coordinates */public final void pressimage(string pressionmg、string targetimg、int x、int y)画像src = imageio.read(_file); int wideth = src.getWidth(null); int height = src.getheight(null); BufferedImage Image = new BuffereDimage(Wideth、height、BufferedImage.type_int_rgb);グラフィックg = image.creategraphics(); G.drawimage(Src、0、0、Wideth、height、null); //透かしファイルファイル_filebiao = new file(pressimg);画像src_biao = imageio.read(_filebiao); int wideth_biao = src_biao.getWidth(null); int height_biao = src_biao.getheight(null); G.drawimage(src_biao、(wideth -wideth_biao) / 2、(height -height_biao) / 2、wideth_biao、height_biao、null); //ウォーターマークファイルの終了g.dispose(); fileoutputStream out = new fileoutputStream(ターゲットimg); jpegimageencoder encoder = jpegcodec.createjpegencoder(out); encoder.encode(画像); out.close(); } catch(Exception e){e.printstacktrace(); }} / ** *テキスト透かし画像を印刷 * * @param presstext * - text * @param targetimg- *ターゲット画像 * @param fontname- * font name * @param fontstyle- * font style * @param color- * font color * @param fontsize- * fontサイズ * TargetImg、string fontname、int fontstyle、int color、int fontsize、int x、int y){try {file _file = new file(targetimg);画像src = imageio.read(_file); int wideth = src.getWidth(null); int height = src.getheight(null); BufferedImage Image = new BuffereDimage(Wideth、height、BufferedImage.type_int_rgb);グラフィックg = image.creategraphics(); G.drawimage(Src、0、0、Wideth、height、null); g.setcolor(color.red); g.setFont(new Font(fontname、fontstyle、fontsize)); G.DrawString(PressText、Wideth -fontsize -x、height -fontsize / 2 -y); g.dispose(); fileoutputStream out = new fileoutputStream(ターゲットimg); jpegimageencoder encoder = jpegcodec.createjpegencoder(out); encoder.encode(画像); out.close(); } catch(Exception e){System.out.println(e); }} public static void main(string [] args){pressimage( "f:/logo.png"、 "f:/123.jpg"、0、0); }}この記事が、誰もがJava言語を使用して画像に透かしを追加するのに役立つことを願っています。