package com.qxueyou.scc.sys.utils;
|
|
import org.springframework.core.io.ClassPathResource;
|
|
import javax.imageio.ImageIO;
|
import javax.swing.*;
|
import java.awt.*;
|
import java.awt.image.BufferedImage;
|
import java.io.FileInputStream;
|
import java.io.InputStream;
|
import java.io.OutputStream;
|
|
/**
|
* @author luodong
|
* @version 1.0
|
* @date 2020/5/23 21:13
|
*/
|
public class DrawingUtil {
|
public static void main(String[] args) {
|
// try {
|
// DrawingUtil.drawImage("D:\\IDEA\\spax_alibaba\\spax_alibaba_user\\src\\main\\resources\\static\\ca1.jpg",
|
// "D:\\IDEA\\spax_alibaba\\spax_alibaba_user\\src\\main\\resources\\static\\ca.jpg","D:\\IDEA\\spax_alibaba\\spax_alibaba_user\\src\\main\\resources\\static\\1.jpg"
|
// ,"ÕÅÈý",
|
// "123456",
|
// "ÉîÛÚÊб£°²Ô±×ʸñ¿¼ÊÔ",
|
// "123456",
|
// "666",
|
// "Ô²ÈÚ½ÌÓý¿¼ÊÔÖÐÐÄ£¨ÉîÛÚ£©",
|
// "Ô²ÈÚ½ÌÓý¿¼ÊÔÖÐÐÄ£¨ÉîÛÚ£©¿¼³¡16",
|
// "71ÇøÐ˶«ÖÚÀï´´ÒµÉçÇø3~5Â¥ÎåÂ¥502",
|
// "µØÌú5ºÅÏßÐ˶«Õ¾D³ö¿Ú£¨ÓÒתֱÐÐ100Ã×µ½´ï½¨Éè" +
|
// "¹¤ÒµÔ°J¶°Ð˶«ÖÚÀï´´ÒµÉçÇø£©;¼Ý³µ£ºµ¼º½" +
|
// "£¨Ô²ÈÚ¿¼ÊÔÖÐÐÄ£©¿ÉÖ±´ï¿¼³¡¡£ÎÞÌṩ³µÎ»£¬" +
|
// "½¨Ò鹫¹²½»Í¨³öÐС£",
|
// "2016-02-02 9:00",
|
// "2016-02-02 9:00",
|
// "ÄÐ");
|
// } catch (Exception e) {
|
// e.printStackTrace();
|
// }
|
}
|
/**
|
* @param img ͼƬ·¾¶
|
* @param sImg СͼƬ 980x994
|
* @param name, ÐÕÃû
|
* @param card, ºÅÂë
|
* @param cname, ¿ÆÄ¿
|
* @param number, Ö¤ºÅ
|
* @param ID, ×ùλ
|
* @param sitename, ¿¼Õ¾Ãû³Æ
|
* @param ename, ¿¼³¡Ãû³Æ
|
* @param address, ¿¼³¡µØÖ·
|
* @param traffic, ¿¼µã½»Í¨
|
* @param starttime, ¿ªÊ¼
|
* @param endtime ½áÊø
|
* @param sex ÐÔ±ð
|
* */
|
public static void drawImage(String img,
|
String sImg,
|
// String nImg,
|
String name,
|
String card,
|
String cname,
|
String number,
|
String ID,
|
String sitename,
|
String ename,
|
String address,
|
String traffic,
|
String starttime,
|
String endtime,
|
String sex,
|
OutputStream outputStream
|
) throws Exception {
|
//¶ÁÈëͼƬµ½ÄÚ´æ
|
InputStream is = DrawingUtil.class.getClassLoader().getResourceAsStream(img);
|
//´´½¨JPEG½âÂëÆ÷
|
BufferedImage bufferImg = ImageIO.read(is);
|
// JPEGImageDecoder jpegDecoder = JPEGCodec.createJPEGDecoder(is);
|
//»ñÈ¡»º³åÊý¾ÝÁ÷
|
// BufferedImage bufferImg = jpegDecoder.decodeAsBufferedImage();
|
//µÃµ½»±Ê¶ÔÏó
|
Graphics g = bufferImg.getGraphics();
|
|
/*´´½¨¸½¼ÓµÄСͼƬ¶ÔÏó*/
|
// ClassPathResource classP = new ClassPathResource(sImg);
|
// ImageIcon imgIcon=new ImageIcon(classP.getURL());
|
// //µÃµ½Image¶ÔÏó
|
// Image simg =imgIcon.getImage();
|
// //½«Ð¡Í¼Æ¬»æµ½´óͼƬÉÏ,λÖÃÐÅÏ¢:(x,y)
|
// g.drawImage(simg,1241,433,null);
|
|
|
//ÉèÖÃ×ÖÌåÑÕÉ«
|
g.setColor(new Color(78,76,75));//78,76,75
|
//×ÖÌå¡¢×ÖÌå´óС
|
Font f = new Font("΢ÈíÑźÚ", Font.PLAIN, 38);
|
g.setFont(f);
|
//ͼƬÉÏ»æÖÆ×Ö·û´®ÄÚÈÝ,λÖÃÐÅÏ¢£¨x,y£©
|
g.drawString(name, 500,489);
|
g.drawString(card, 500, 561);
|
g.drawString(cname, 500,629);
|
g.drawString(number, 500, 699);
|
g.drawString(ID, 500, 769);
|
g.drawString(sitename, 500,857);
|
g.drawString(ename,500,909);
|
// g.drawString(address, 500,979);
|
drawText(g.getFont().getSize(),500,979,700,5,g,address);
|
// g.drawString(traffic, 500,1157);
|
drawText(g.getFont().getSize(),500,1080,700,5,g,traffic);
|
g.drawString(starttime, 500, 1337);
|
g.drawString(endtime, 500, 1405);
|
g.drawString(sex, 1081,489);
|
g.dispose();
|
// //Êä³öÐÂͼƬ
|
// OutputStream out = new FileOutputStream(nImg);
|
//½âÎöÄÚ´æÖеÄͼÏñÊý¾Ý
|
// JPEGImageEncoder en = JPEGCodec.createJPEGEncoder(outputStream);
|
// en.encode(bufferImg);
|
ImageIO.write(bufferImg, "jpeg", outputStream);
|
|
//¹Ø±ÕÁ÷
|
is.close();
|
// out.close();
|
}
|
|
/**
|
* ¸ù¾Ý¿í¶È×Ô¶¯»»ÐÐ
|
* @param fontSize ×ÖÌå´óС
|
* @param beginX ¿ªÊ¼X
|
* @param beginY ¿ªÊ¼Y
|
* @param imgWidth ÇøÓò¿í¶È
|
* @param rowSpacing Ðоà
|
* @param g »±Ê
|
* @param text Îı¾
|
*/
|
public static void drawText(int fontSize,int beginX,int beginY,int imgWidth,int rowSpacing,Graphics g,String text){
|
//ÎÄ×Öµþ¼Ó,×Ô¶¯»»Ðеþ¼Ó
|
int tempX = beginX ;
|
int tempY = beginY ;
|
int tempCharLen = 0;//µ¥×Ö·û³¤¶È
|
int tempLineLen = 0;//µ¥ÐÐ×Ö·û×ܳ¤¶ÈÁÙʱ¼ÆËã
|
StringBuffer sb = new StringBuffer();
|
int textMaxWidth = imgWidth - 10;
|
for (int i = 0; i < text.length(); i++) {
|
char tempChar = text.charAt(i);
|
tempCharLen = g.getFontMetrics(g.getFont()).charWidth(tempChar);
|
tempLineLen += tempCharLen;
|
if (tempLineLen >= textMaxWidth) {
|
//³¤¶ÈÒѾÂúÒ»ÐÐ,½øÐÐÎÄ×Öµþ¼Ó
|
g.drawString(sb.toString(), tempX, tempY);
|
sb.delete(0, sb.length());//Çå¿ÕÄÚÈÝ,ÖØÐÂ×·¼Ó
|
tempY += (fontSize + rowSpacing);
|
tempLineLen = 0;
|
}
|
sb.append(tempChar);//×·¼Ó×Ö·û
|
}
|
g.drawString(sb.toString(), tempX, tempY);//×îºóµþ¼ÓÓàϵÄÎÄ×Ö
|
}
|
}
|