日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java盒图_java合成图片

發布時間:2025/3/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java盒图_java合成图片 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

package com.pbids.sanqin.util;

import javax.imageio.ImageIO;

import java.awt.*;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import java.net.URL;

public class PicUtil {

private Font font = new Font("宋體", Font.PLAIN, 12); // 添加字體的屬性設置

private Graphics2D g = null;

private int fontsize = 0;

private int x = 0;

private int y = 0;

/**

* 導入本地圖片到緩沖區

*/

public BufferedImage loadImageLocal(String imgName) {

try {

return ImageIO.read(new File(imgName));

} catch (IOException e) {

System.out.println(e.getMessage());

}

return null;

}

/**

* 導入網絡圖片到緩沖區

*/

public BufferedImage loadImageUrl(String imgName) {

try {

URL url = new URL(imgName);

return ImageIO.read(url);

} catch (IOException e) {

System.out.println(e.getMessage());

}

return null;

}

/**

* 生成新圖片到本地

*/

public void writeImageLocal(String newImage, BufferedImage img) {

if (newImage != null && img != null) {

try {

File outputfile = new File(newImage);

ImageIO.write(img, "png", outputfile);

} catch (IOException e) {

System.out.println(e.getMessage());

}

}

}

/**

* 設定文字的字體等

*/

public void setFont(String fontStyle, int fontSize) {

this.fontsize = fontSize;

this.font = new Font(fontStyle, Font.PLAIN, fontSize);

}

/**

* 修改圖片,返回修改后的圖片緩沖區(只輸出一行文本)

*/

public BufferedImage modifyImage(BufferedImage img, Object content, int x, int y) {

try {

int w = img.getWidth();

int h = img.getHeight();

g = img.createGraphics();

g.setBackground(Color.WHITE);

g.setColor(Color.orange);//設置字體顏色

if (this.font != null)

g.setFont(this.font);

// 驗證輸出位置的縱坐標和橫坐標

if (x >= h || y >= w) {

this.x = h - this.fontsize + 2;

this.y = w;

} else {

this.x = x;

this.y = y;

}

if (content != null) {

g.drawString(content.toString(), this.x, this.y);

}

g.dispose();

} catch (Exception e) {

System.out.println(e.getMessage());

}

return img;

}

/**

* 修改圖片,返回修改后的圖片緩沖區(輸出多個文本段) xory:true表示將內容在一行中輸出;false表示將內容多行輸出

*/

public BufferedImage modifyImage(BufferedImage img, Object[] contentArr, int x, int y,

boolean xory) {

try {

int w = img.getWidth();

int h = img.getHeight();

g = img.createGraphics();

g.setBackground(Color.WHITE);

g.setColor(Color.RED);

if (this.font != null)

g.setFont(this.font);

// 驗證輸出位置的縱坐標和橫坐標

if (x >= h || y >= w) {

this.x = h - this.fontsize + 2;

this.y = w;

} else {

this.x = x;

this.y = y;

}

if (contentArr != null) {

int arrlen = contentArr.length;

if (xory) {

for (int i = 0; i < arrlen; i++) {

g.drawString(contentArr[i].toString(), this.x, this.y);

this.x += contentArr[i].toString().length() * this.fontsize / 2 + 5;// 重新計算文本輸出位置

}

} else {

for (int i = 0; i < arrlen; i++) {

g.drawString(contentArr[i].toString(), this.x, this.y);

this.y += this.fontsize + 2;// 重新計算文本輸出位置

}

}

}

g.dispose();

} catch (Exception e) {

System.out.println(e.getMessage());

}

return img;

}

/**

* 修改圖片,返回修改后的圖片緩沖區(只輸出一行文本)

*

* 時間:2007-10-8

*

* @param img

* @return

*/

public BufferedImage modifyImageYe(BufferedImage img) {

try {

int w = img.getWidth();

int h = img.getHeight();

g = img.createGraphics();

g.setBackground(Color.WHITE);

g.setColor(Color.blue);//設置字體顏色

if (this.font != null)

g.setFont(this.font);

g.drawString("www.hi.baidu.com?xia_mingjian", w - 85, h - 5);

g.dispose();

} catch (Exception e) {

System.out.println(e.getMessage());

}

return img;

}

/**

* 合成圖片

* @param addImage

* @param originalImage

* @return

*/

public BufferedImage modifyImagetogeter(BufferedImage addImage, BufferedImage originalImage) {

try {

/* int w = d.getWidth();

int h = d.getHeight();*/

g = originalImage.createGraphics();

g.drawImage(addImage, 593, 1875, 335, 335, null);

g.dispose();

} catch (Exception e) {

System.out.println(e.getMessage());

}

return originalImage;

}

/**

* 圖片合成

* @param

* @param

*/

/* public static final void overlapImage(String bigPath, String smallPath) {

try {

BufferedImage big = ImageIO.read(new File(bigPath));

BufferedImage small = ImageIO.read(new File(smallPath));

Graphics2D g = big.createGraphics();

int x = (big.getWidth() - small.getWidth()) / 2;

int y = (big.getHeight() - small.getHeight()) / 2;

g.drawImage(small, x, y, small.getWidth(), small.getHeight(), null);

g.dispose();

ImageIO.write(big, "png", new File("D/aa/jack.png"));

System.out.println("成功");

} catch (Exception e) {

e.printStackTrace();

}

}*/

public static void main(String[] args) {

PicUtil tt = new PicUtil();

BufferedImage addImage = tt.loadImageLocal("D:/new.png");

BufferedImage originalImage = tt.loadImageLocal("D:/aa/bg.png");

//往圖片上寫文件

// overlapImage("D:/aa/bg.png", "D:/new.png");

//將多張圖片合在一起tt.writeImageLocal("D:/aa/cc.png", tt.modifyImagetogeter(addImage, originalImage));

System.out.println("success");

}

}

總結

以上是生活随笔為你收集整理的java盒图_java合成图片的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。