คัดลอกรหัสรหัส ดังต่อไปนี้:
แพ็คเกจ com.blogs.image;
นำเข้า java.awt.AlphaComposite;
นำเข้า java.awt.Color;
นำเข้า java.awt.Font;
นำเข้า java.awt.Graphics2D;
นำเข้า java.awt.Image;
นำเข้า java.awt.RenderingHints;
นำเข้า java.awt.image.BufferedImage;
นำเข้า java.io.File;
นำเข้า java.io.FileOutputStream;
นำเข้า java.io.InputStream;
นำเข้า java.io.OutputStream;
นำเข้า javax.imageio.ImageIO;
นำเข้า javax.swing.ImageIcon;
-
* ลายน้ำรูปภาพ
-
ImageUtil คลาสสาธารณะ {
-
* @param args
-
โมฆะคงที่สาธารณะ main (String [] args) {
สตริง srcImgPath = "e:/2.png";
สตริง iconPath = "e://logo.jpg";
สตริง targetPath = "e:/3.jpg";
//เพิ่มลายน้ำให้กับรูปภาพ
ImageUtil.waterMarkImageByIcon (iconPath, srcImgPath, targerPath, 0, 0,
, 0.1f);
//เพิ่มลายน้ำให้กับรูปภาพ การหมุนลายน้ำ -45
// ImageMarkLogoByIcon.markImageByIcon (iconPath, srcImgPath,
// targetPath2, -45);
-
-
* เพิ่มลายน้ำให้กับรูปภาพและตั้งค่ามุมการหมุนของรูปภาพลายน้ำ
-
* @param ไอคอนเส้นทาง
* เส้นทางภาพลายน้ำ
* @param srcImgPath
* เส้นทางรูปภาพต้นฉบับ
* @param targetPath
* เส้นทางภาพเป้าหมาย
* @ปริญญาพาราม
* มุมการหมุนภาพลายน้ำ
* @ความกว้างของพารามิเตอร์
* ความกว้าง (เทียบกับด้านซ้าย)
* @ความสูงพารามิเตอร์
* ความสูง (เทียบกับด้านบน)
* @param ความชัดเจน
* ยิ่งความโปร่งใส (ตัวเลขน้อยกว่า 1) ใกล้ 0 มากเท่าใด ความโปร่งใสก็จะยิ่งมากขึ้นเท่านั้น
-
โมฆะสาธารณะคงที่ waterMarkImageByIcon (String iconPath, String srcImgPath,
สตริง targerPath, ระดับจำนวนเต็ม, ความกว้างของจำนวนเต็ม, ความสูงจำนวนเต็ม,
ความชัดเจนลอยตัว) {
ระบบปฏิบัติการ OutputStream = null;
พยายาม {
รูปภาพ srcImg = ImageIO.read (ไฟล์ใหม่ (srcImgPath));
System.out.println("ความกว้าง:" + srcImg.getWidth(null));
System.out.println("ความสูง:" + srcImg.getHeight(null));
BufferedImage buffImg = ใหม่ 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), รูปภาพ. SCALE_SMOOTH), 0, 0,
โมฆะ);
ถ้า (null != องศา) {
//ตั้งค่าการหมุนลายน้ำ
g.rotate(Math.toRadians(องศา)
(สองเท่า) buffImg.getWidth() / 2,
(สองเท่า) buffImg.getHeight() / 2);
-
//เส้นทางของภาพลายน้ำ โดยปกติแล้วลายน้ำจะเป็น GIF หรือ PNG ดังนั้นจึงสามารถตั้งค่าความโปร่งใสได้
ImageIcon imgIcon = ImageIcon ใหม่ (iconPath);
// รับวัตถุรูปภาพ
รูปภาพ img = imgIcon.getImage();
float alpha = ความชัดเจน; // ความโปร่งใส
g.setComposite (AlphaComposite.getInstance (AlphaComposite.SRC_ATOP,
อัลฟา));
//ระบุตำแหน่งของภาพลายน้ำ
g.drawImage(img, ความกว้าง, ความสูง, null);
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
g.ทิ้ง();
os = FileOutputStream ใหม่ (targerPath);
//สร้างภาพ
ImageIO.write(buffImg, "JPG", ระบบปฏิบัติการ);
System.out.println("การเพิ่มภาพลายน้ำเสร็จสมบูรณ์!");
} จับ (ข้อยกเว้นจ) {
e.printStackTrace();
} ในที่สุด {
พยายาม {
ถ้า (null != ระบบปฏิบัติการ)
os.ปิด();
} จับ (ข้อยกเว้นจ) {
e.printStackTrace();
-
-
-
-
* เพิ่มลายน้ำให้กับรูปภาพและตั้งค่ามุมการหมุนของรูปภาพลายน้ำ
-
* ข้อความโลโก้ @param
* ข้อความลายน้ำ
* @param srcImgPath
* เส้นทางรูปภาพต้นฉบับ
* @param targetPath
* เส้นทางภาพเป้าหมาย
* @ปริญญาพาราม
* มุมการหมุนภาพลายน้ำ
* @ความกว้างของพารามิเตอร์
* ความกว้าง (เทียบกับด้านซ้าย)
* @ความสูงพารามิเตอร์
* ความสูง (เทียบกับด้านบน)
* @param ความชัดเจน
* ยิ่งความโปร่งใส (ตัวเลขน้อยกว่า 1) ใกล้ 0 มากเท่าใด ความโปร่งใสก็จะยิ่งมากขึ้นเท่านั้น
-
โมฆะสาธารณะคงที่ waterMarkByText (String logoText, String srcImgPath,
สตริง targerPath, ระดับจำนวนเต็ม, ความกว้างของจำนวนเต็ม, ความสูงจำนวนเต็ม,
ความชัดเจนแบบลอยตัว) {
//เส้นทางของภาพหลัก
InputStream คือ = null;
ระบบปฏิบัติการ OutputStream = null;
พยายาม {
รูปภาพ srcImg = ImageIO.read (ไฟล์ใหม่ (srcImgPath));
BufferedImage buffImg = ใหม่ 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), รูปภาพ. SCALE_SMOOTH), 0, 0,
โมฆะ);
ถ้า (null != องศา) {
//ตั้งค่าการหมุนลายน้ำ
g.rotate(Math.toRadians(องศา)
(สองเท่า) buffImg.getWidth() / 2,
(สองเท่า) buffImg.getHeight() / 2);
-
//กำหนดสี
g.setColor(สี.แดง);
//ตั้งค่าแบบอักษร
g.setFont(แบบอักษรใหม่("宋体", Font.BOLD, 30));
float alpha = ความชัดเจน;
g.setComposite (AlphaComposite.getInstance (AlphaComposite.SRC_ATOP,
อัลฟา));
// พารามิเตอร์แรก -> เนื้อหาของการตั้งค่า พารามิเตอร์สองตัวถัดไป -> ตำแหน่งพิกัด (x, y) ของข้อความบนรูปภาพ
g.drawString(ข้อความโลโก้, ความกว้าง, ความสูง);
g.ทิ้ง();
os = FileOutputStream ใหม่ (targerPath);
//สร้างภาพ
ImageIO.write(buffImg, "JPG", ระบบปฏิบัติการ);
System.out.println("เพิ่มข้อความลายน้ำเสร็จสมบูรณ์!");
} จับ (ข้อยกเว้นจ) {
e.printStackTrace();
} ในที่สุด {
พยายาม {
ถ้า (null != คือ)
คือ.ปิด();
} จับ (ข้อยกเว้นจ) {
e.printStackTrace();
-
พยายาม {
ถ้า (null != ระบบปฏิบัติการ)
os.ปิด();
} จับ (ข้อยกเว้นจ) {
e.printStackTrace();
-
-
-
-
นอกจากนี้ยังมีรหัสปรับขนาดรูปภาพ:
คัดลอกรหัสรหัส ดังต่อไปนี้:
-
* การปรับขนาดรูปภาพ (รูปภาพถูกปรับขนาดตามขนาดที่กำหนดตามสัดส่วนและส่วนที่ว่างจะเต็มไปด้วยสีขาว)
-
* @param srcPath
* เส้นทางรูปภาพต้นฉบับ
* @param destPath
* เส้นทางภาพหลังจากการปรับขนาด
-
โมฆะสาธารณะแบบคงที่ ZoomImage (สตริง srcPath, สตริง destPath, int destHeight, int destWidth) {
พยายาม {
BufferedImage srcBufferedImage = ImageIO.read (ไฟล์ใหม่ (srcPath));
int imgWidth = ปลายทาง;
int imgHeight = ปลายทางความสูง;
int srcWidth = srcBufferedImage.getWidth();
int srcHeight = srcBufferedImage.getHeight();
ถ้า (srcHeight >= srcWidth) {
imgWidth = (int) Math.round(((destHeight * 1.0 / srcHeight) * srcWidth));
} อื่น {
imgHeight = (int) Math.round(((destWidth * 1.0 / srcWidth) * srcHeight));
-
BufferedImage destBufferedImage = BufferedImage ใหม่ (destWidth, destHeight, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = destBufferedImage.createGraphics();
กราฟิก2D.setBackground(สี.WHITE);
กราฟิก2D.clearRect(0, 0, destWidth, destHeight);
กราฟิก2D.drawImage(srcBufferedImage.getScaledInstance(imgWidth, imgHeight, Image.SCALE_SMOOTH), (destWidth / 2) - (imgWidth / 2), (destHeight / 2) - (imgHeight / 2), null);
Graphics2D.ทิ้ง();
ImageIO.write(destBufferedImage, "JPEG", ไฟล์ใหม่ (destPath));
} จับ (IOException จ) {
e.printStackTrace();
-
-