Heute habe ich auf die Erfüllung des hochgeladenen Bildes mit Wasserzeichen gestoßen. Ich habe lange online gesucht und das Wasserzeichen am angegebenen Ort festgelegt. Der folgende Code wurde durch den Code transformiert, den ich online gefunden habe. Schauen wir uns zuerst das Effektbild an
Die Implementierungsmethode wird unten erörtert:
Schritt 1: Verwenden Sie die PS- oder MEITU -Software zum Entwerfen von Wasserzeichenbildern wie:
Schritt 2: Stecken Sie den folgenden Code in die Klasse:
Paket org.platform.framework.commons.util; Import Java.awt.Alphacomposite; Import Java.awt.Color; Import Java.awt.font; import Java.awt.graphics2d; Import Java.awt.image; java.io.file; import java.io.fileoutputstream; import Java.io.inputStream; Import Java.io.outputStream; Import Javax.imageo.imageo; { / ** Wasserzeichen Transparenz* / privat statischer Schwimmer alpha = 0,5f; / ** Wasserzeichen Bilddrehwinkel*/ privates statisches Doppelgrad = 0F; privates statisches INT -Intervall = 0; / ** * Setzen Sie die Wasserzeichenparameter, verwenden Sie den Standardwert ohne Einstellung * * @param alpha * Wasserzeichentransparenz * @param Grad * Wasserzeichen Bildrotationswinkel * * @param Intervall * Wasserzeichen Bildintervall */ public static void SetImagemarkoptions (Float alpha, Int Grad, Int -Intervall) {if (alpha! } if (Grad! = 0f) {Imagemarkutil.DeGree = Grad; } if (intervall! = 0f) {Imagemarkutil.Interval = Intervall; }} / *** Fügen Sie dem Bild ein Wasserzeichen -Bild hinzu** @param wateriMgpath* Wasserzeichen Bildweg* @param srcimgpath* Quellbildpfad* @param targetPath* Zielbildpfad* / public static void Watermarkbyimg (String WaterImgPath, String SrcimgPath) Trefferpaths, TargetPath, SrcimgPath, SrcimgPath, Ausnahme {WatermarkyImg (WatermyMg (Watermyimg)). } / *** Fügen Sie dem Bild ein Wasserzeichen -Bild hinzu** @param wateriMgpath* Wasserzeichen Bildweg* @param srcimgPath* Quellbildpfad* @param targetPath* Zielbildpfad* / public static void Watermarkbyimg (String WaterImgpath, String Srcimgpath) {try {try {watermarkbyimg (WaterImgpath, Srcimgpath, Srcimgpath, Srcimgpath, Srcimgpath, 0); } catch (Ausnahme e) {// Todo automatisch generierter Block E. printstacktrace (); }} / *** Fügen Sie dem Bild ein Wasserzeichenbild hinzu und setzen {OutputStream os = null; try {image srcimg = imageio.read (neue Datei (srcimgPath)); Bufferedimage buffimg = new bufferedImage (srcimg.getwidth (null), srcimg.getheight (null), bufferedimage.type_int_rgb); // 1. Holen Sie sich das Pinselobjekt Graphics2d g = buffimg.createGraphics (); // 2. Setzen Sie die zackige Kantenverarbeitung des Leitungssegments 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); // 3.. Stellen Sie die Wasserzeichenrotation ein, wenn (0! = Grad) {g.Rotate (math.toradians (Grad), (doppelte) buffimg.getwidth () / 2, (doppelte) buffimg .Getheight () / 2); } // 4. Der Pfad des Wasserzeichenbildes Das Wasserzeichenbild ist im Allgemeinen GIF oder PNG, so dass die Transparenz imageCon imgicon = new ImageCon (WaterImgPath) festgelegt werden kann; // 5. Holen Sie sich das Bildobjekt. Bild img = imgicon.getImage (); G.SetComposite (Alphacomposite.getInstance (Alphacomposite.src_atop, Alpha)); // 6. Die Position des Wasserzeichenbilds ist für (int Höhe = Intervall + imgicon.geticonHeight (); Höhe <buffimg .Getheight (); Höhe = Höhe + Intervall + imgicon.geticonHeight ()) {für (int Gewicht = Intervall + imgicon.geticonwidth (); imgicon.geticonwidth ()) {g.drawimage (IMG, Gewicht - imgicon.geticonwidth (), Höhe - imgicon.geticonHeight (), null); }} g.setComposite (alphacomposite.getInstance (alphacomposite.src_over)); // 7. Veröffentlichen Sie die Ressource G. Dispose (); // 8. Image OS = New FileOutputStream (TargerPath) generieren; Imageio.Write (Buffimg, "JPG", OS); System.out.println ("Bild fertig mit Wasserzeichen im Bild"); } catch (Ausnahme e) {e.printstacktrace (); } endlich {try {if (null! = os) os.close (); } catch (Ausnahme e) {e.printstacktrace (); }}} public static void main (String [] args) {System.out.println (".. fügen Sie das Wasserzeichen -Bild hinzu ..."); /*** Wassermarkpfad Wassermarke Bildadresse UploadPath -Dateiadresse Nach erfolgreichem Upload* // Die Standardparameter ändern // Imagemarkutil.setImagemarkOptions (0.0f, 0, 20); //ImageMarkutil.watermarkbyimg(watermarkPath, UploadPath); System.out.println (".. Wassermark -Bild zum Ende ..."); }} Schritt 3: Wenn der Upload erfolgreich ist, rufen Sie diese Klasse an, wie z. B.:
/ *** Wassermarkpfad Wasserzeichen Bildadresse* UploadPath -Dateiadresse nach erfolgreichem Upload*/ Imagemarkutil.watermarkbyImg (WatermarkPath, UploadPath); Wenn Sie der Meinung sind, dass das Wassermark -Intervall zu nahe ist, können Sie das Intervall über den folgenden Code einstellen: // Die Standardparameter Imagemarkutil.SetImageMarkoptions (0,0F, 0, 20) ändern. Imagemarkutil.WatermarkbyImg (Wassermarkpfad, UploadPath);
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.