java awt Graphics 绘图ITeye - 娱乐之横扫全球

java awt Graphics 绘图ITeye

2019年04月03日11时18分34秒 | 作者: 昌黎 | 标签: 字符串,二维码,图片 | 浏览: 2581

最近要做一张图片如下图,开端并不了解AWT,瞎忙了一天
现在完成任务把代码发出来符号一下,便利今后运用。

format 办法或许存在文字太长需求换行


import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import java.util.Vector;
import javax.imageio.ImageIO;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.common.BitMatrix;
import com.iec.o2o.model.activity.vo.OfflineActProductImageVo;
 * @author yonglongwang
 * 2017年 下午5:06:07
public class QRCodeMain{
 private static int BLACK = 0x000000; 
 private static int WHITE = 0xFFFFFF; 
 // 核算字符串的宽度
 public static int getFontWidth(Graphics g, String str){
 int width = 0;
 for(int i=0;i str.length();i++){
 // 默许字体款式核算,不然需求传参
 width += g.getFontMetrics(new Font("宋体", Font.PLAIN, 20)).charWidth(str.charAt(i));
 return width;
 * 字符串切开,完成字符串主动换行 
 * maxWidth 画布的宽
 @SuppressWarnings({ "rawtypes", "unchecked" })
 public static String[] format(Graphics g, String text, int maxWidth, Font ft) {
 String[] result = null;
 Vector tempR = new Vector();
 int lines = 0;
 int len = text.length();
 int index0 = 0;
 int index1 = 0;
 boolean wrap;
 while (true) {
 int widthes = 0;
 wrap = false;
 for (index0 = index1; index1 len; index1++) {
 if (text.charAt(index1)  \n) {
 index1++;
 wrap = true;
 break;
 widthes = g.getFontMetrics(ft).charWidth(text.charAt(index1)) + widthes;
 if (widthes maxWidth) {
 break;
 lines++;
 if (wrap) {
 tempR.addElement(text.substring(index0, index1 - 1));
 } else {
 tempR.addElement(text.substring(index0, index1));
 if (index1 = len) {
 break;
 result = new String[lines];
 tempR.copyInto(result);
 return result;
 public static void main(String[] args) throws Exception{ 
 // 写到图片上的参数
 OfflineActProductImageVo offlineVo = new OfflineActProductImageVo();
 // 创立画布
 BufferedImage img = new BufferedImage(400, 475, BufferedImage.TYPE_INT_RGB); 
 // 得到画笔
 Graphics graphics = img.getGraphics();
 // 白色布景
 graphics.setColor(Color.white); 
 // 填充白色规模
 graphics.fillRect(0, 0, 400, 475);
 // 增加二维码
 MultiFormatWriter writer = new MultiFormatWriter(); 
 Map EncodeHintType, Object hints = new HashMap ();
 hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
 hints.put(EncodeHintType.MARGIN, 3); //二维码边框宽度
 BitMatrix bm = writer.encode("二维码内容信息", BarcodeFormat.QR_CODE, 400, 400 , hints); 
 int w = bm.getWidth(); 
 int h = bm.getHeight();
 for(int x=0;x x++){ 
 for(int y=0;y y++){ 
 img.setRGB(x, 70+y, bm.get(x, y) ? BLACK : WHITE);                          
			
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表娱乐之横扫全球立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1

    java awt Graphics 绘图ITeye

    字符串,二维码,图片
  • 2

    slf4jITeye

    日志,运用,一个
  • 3
  • 4

    spring+mybatis装备ITeye

    装备,一下,需求
  • 5

    文件的读写和操作ITeye

    文件,字节,输出
  • 6

    ubuntu下python办理ITeye

    能够,咱们,经过
  • 7

    第03章 惯例选择器 (2)ITeye

    主页,选择器,运用
  • 8

    zookeeper原理(转)ITeye

    节点,集群,一个
  • 9
  • 10