精华内容
下载资源
问答
  • JAVA 图片添加内容

    万次阅读 2020-08-05 10:12:39
    公司最近需要进行图片内容动态添加数据需求 boolean flag = PDFReader.createStringMark(“C:\Users\zhangwp\Desktop\1.jpg”, “CALG”,“C:\Users\zhangwp\Desktop\12.jpg”); System.out.println(flag); 具体内容...

    公司最近需要进行图片内容动态添加数据需求

    boolean flag = PDFReader.createStringMark(“C:\Users\zhangwp\Desktop\1.jpg”, “CALG”,“C:\Users\zhangwp\Desktop\12.jpg”);
    System.out.println(flag);
    具体内容位置等根据需求调试

    /**
         *  给图片添加文字内容
         * @param filePath  原图路径
         * @param markContent 文字内容
         * @param outPath   添加文字内容的图片存放路径地址
         * @param flag   可以根据flag值,给图片设置具体值
         */
        public static void createStringMark(String filePath,String markContent,String outPath,Integer flag) {
            ImageIcon imgIcon = new ImageIcon(filePath);
            Image theImg = imgIcon.getImage();
            int width = theImg.getWidth(null) == -1 ? 200 : theImg.getWidth(null);
            int height = theImg.getHeight(null) == -1 ? 200 : theImg.getHeight(null);
    //        System.out.println(width);
    //        System.out.println(height);
    //        System.out.println(theImg);
            BufferedImage bimage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);// RGB形式
            Graphics2D g = bimage.createGraphics();
            Color mycolor = Color.white; // 颜色
            g.setColor(mycolor);
            g.setBackground(Color.white);// 设置背景色
            g.drawImage(theImg, 0, 0, null);// 参数一:image是要加载的图像;参数二,三:x,y是指定绘制图像矩形左上角的位置;参数四:observer是要绘制图像的容器,一般此参数默认为null
            /* 设置抗锯齿 消文字锯齿:RenderingHints.KEY_TEXT_ANTIALIASING
             *           消绘图锯齿:RenderingHints.KEY_ANTIALIASING
             *           字体圆滑:  RenderingHints.VALUE_TEXT_ANTIALIAS_ON
             */
            switch (flag){
                case 0:
    //              g.setFont(new java.awt.Font("黑体", java.awt.Font.BOLD, 24)); // 字体、字型、字号
    //              g.drawString(markContent, 1, 39); // 画文字 文字在1宽度,39高度
                    g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);// 设置抗锯齿
                    g.setFont(new java.awt.Font("黑体", java.awt.Font.BOLD, 24)); // 字体、字型、字号
                    g.setPaint(new Color(0, 0, 0, 64));// 阴影颜色
                    g.drawString(markContent, 1, 39);// 先绘制阴影
                    g.setPaint(Color.WHITE);// 正文颜色
                    g.drawString(markContent, 1, 39);// 用正文颜色覆盖上去
                    break;
                case 1:
    //              g.setFont(new java.awt.Font("黑体", java.awt.Font.BOLD, 16)); // 字体、字型、字号
    //              g.drawString(markContent, 1, 17); // 画文字 文字在1宽度,17高度
                    g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);// 设置抗锯齿
                    g.setFont(new java.awt.Font("黑体", java.awt.Font.BOLD, 16)); // 字体、字型、字号
                    g.setPaint(new Color(0, 0, 0, 64));// 阴影颜色
                    g.drawString(markContent, 1, 17);// 先绘制阴影
                    g.setPaint(Color.WHITE);// 正文颜色
                    g.drawString(markContent, 1, 17);// 用正文颜色覆盖上去
                    break;
                default:
                    g.setFont(new java.awt.Font("黑体", java.awt.Font.PLAIN, 1)); // 字体、字型、字号
                    g.drawString(markContent, 1, 1); // 画文字 文字在1宽度,1高度
                    break;
            }
            g.dispose();
            try {
                FileOutputStream out = new FileOutputStream(outPath); // 一个特定的输出文件名
                JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
                JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bimage);
                param.setQuality(100, false);  // 进行高质量图片缩放
                encoder.encode(bimage, param);
                out.close();
            } catch (Exception e) {
                e.printStackTrace();
                throw new ServiceException(e.getMessage());
            }
        }
    

    1.jpg
    在这里插入图片描述

    2.jpg
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • Java实现二维码添加文本内容

    千次阅读 2018-08-06 17:37:47
    import java.awt.BasicStroke; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.Shape; import java.awt.font.FontRenderContext; import java.awt.geom.Rectangle2D;.....

    这里写图片描述

    import java.awt.BasicStroke;
    import java.awt.Color;
    import java.awt.Font;
    import java.awt.Graphics2D;
    import java.awt.Shape;
    import java.awt.font.FontRenderContext;
    import java.awt.geom.Rectangle2D;
    import java.awt.geom.RoundRectangle2D;
    import java.awt.image.BufferedImage;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    
    import javax.imageio.ImageIO;
    
    public class Logo {
    
        /**
         * 二维码大小
         */
        private static final int QRCODE_SIZE = 412;
    
        public static void main(String[] args) throws Exception {
    
            FileInputStream fis = new FileInputStream("E:\\ceshi.png");
            BufferedImage read = ImageIO.read(fis);
            String[] contents = { "二维码", "文本或图片", "合并后仍然可以用","你可以试一下哟~" };
    
            Integer[] perContentMaxLength = { 7, 5 };
    
            mergeImage(read, contents, perContentMaxLength);
            FileOutputStream fos = new FileOutputStream("E:\\ceshi_new.png");
            ImageIO.write(read, "PNG", fos);
            fos.close();
            System.out.println("--------OK--------");
        }
    
        /**
         * 在给定的图片或者二维码上添加LOGO,以二维码为例 此处LOGO内容是将文本内容添加到二维码上
         * LOGO中的文字最后一行与底部挨得近,这是double转int时损失精度导致的
         * 
         * @param source
         *            原二维码
         * @param contents
         *            在二维码上添加文本内容,每个元素在LOGO上占一行
         * @param perContentMaxLength
         *            指定每个元素最长的文本字段,超出的将被舍去
         * @throws Exception
         */
        private static void mergeImage(BufferedImage source, String[] contents,
                Integer[] perContentMaxLength) throws Exception {
    
            if (null == contents || contents.length < 1) {
                return;
            }
    
            // LOGO的长度和宽度
            int width = 100;
            int height = 100;
            // 创建原图的几何图形对象
            Graphics2D graph = source.createGraphics();
            // 计算除去LOGO外其他部分的长和宽的一半
            int x = (QRCODE_SIZE - width) / 2;
            int y = (QRCODE_SIZE - height) / 2;
    
            // 创建LOGO图像对象
            BufferedImage tag = new BufferedImage(width, height,
                    BufferedImage.TYPE_INT_RGB);
            // 获取LOGO的几何图形对象
            Graphics2D g2 = (Graphics2D) tag.getGraphics();
            // 设置背景色
            g2.setBackground(Color.WHITE);
            // 设置画笔,设置Paint属性
            g2.setPaint(Color.BLACK);
            g2.clearRect(0, 0, width, height);
            Font font = new Font("微软雅黑", Font.BOLD, 12);
            g2.setFont(font);
    
            if (null != contents && contents.length > 0) {
                // 获取操作LOGO的几何图形的操作文本的对象
                FontRenderContext context = g2.getFontRenderContext();
                // 将LOGO的高平分为字符串数组长度份
                double y2 = height / contents.length;
                for (int i = 0; i < contents.length; i++) {
                    String content = contents[i];
    
                    if (null != perContentMaxLength
                            && i < perContentMaxLength.length) {
                        if (content.length() > perContentMaxLength[i]) {
                            content = content.substring(0, perContentMaxLength[i]);
                        }
                    }
    
                    // 通过设置字符串获取到字符串在LOGO图像域中的信息
                    Rectangle2D bounds = font.getStringBounds(content, context);
                    // 获取LOGO几何图形中的当前字符串所占的宽度bounds.getWidth(),并计算字符串像素X的起始位置,这里除以2是为了字符串居中显示
                    double x2 = (width - bounds.getWidth()) / 2;
                    // 获取LOGO几何图形中的当前字符串所在的高度,y2是平均分的字符串数组的高度
                    double y3 = (y2 + bounds.getHeight()) / 2;
                    // 计算字符串像素y的起始位置
                    double y4 = y2 * i + y3;
    
                    g2.drawString(content, (int) x2, (int) y4);
                }
            }
    
            // 将LOGO修改后的图形整合到原图上
            graph.drawImage(tag, x, y, width, height, null);
            Shape shape = new RoundRectangle2D.Float(x, y, width, width, 6, 6);
            graph.setStroke(new BasicStroke(3f));
            graph.draw(shape);
            graph.dispose();
            g2.dispose();
        }
    }
    展开全文
  • Java 添加背景图片

    千次阅读 2019-02-14 15:14:28
    Java 添加背景图片
                   

    import java.awt.*;
    import javax.swing.*;

    public class TestBackgroundColor extends JFrame {
     public static void main(String[] args) {
      // TODO Auto-generated method stub
      TestBackgroundColor tbc = new TestBackgroundColor();
      tbc.setVisible(true);
     }

     private JPanel imagePanel;
     private ImageIcon background;

     public TestBackgroundColor() {
      background = new ImageIcon("blue.jpg");// 背景图片
      JLabel label = new JLabel(background);// 把背景图片显示在一个标签里面
      // 把标签的大小位
      // 置设置为图片刚好填充整个面板
      label.setBounds(0, 0, background.getIconWidth(), background
        .getIconHeight());
      // 把内容窗格转化为JPanel,否则不能用方法setOpaque()来使内容窗格透明
      imagePanel = (JPanel) this.getContentPane();
      imagePanel.setOpaque(false);
      // 内容窗格默认的布局管理器为BorderLayout
      imagePanel.setLayout(new FlowLayout());
      imagePanel.add(new JButton("测试按钮"));
      this.getLayeredPane().setLayout(null);
      // 把背景图片添加到分层窗格的最底层作为背景
      this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      this.setSize(background.getIconWidth(), background.getIconHeight());
      this.setVisible(true);
     }
    }

               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • java给文件内容添加

    千次阅读 2017-12-08 16:47:55
    1.小文件添加头部内容 代码实现: package com.xtm.test; import java.io.RandomAccessFile; public class Main { public static final String PATH = "F://a.txt"; public static void main...

    1.小文件添加头部内容

    代码实现:

    package com.xtm.test;
    
    import java.io.RandomAccessFile;
    
    public class Main {
    	public static final String PATH = "F://a.txt";
    
    	public static void main(String[] args) throws Exception{
    		String header = "--文件头--";
    		appendFileHeader(header.getBytes(),PATH);
    	}
    
    	/**
    	 * 向src文件添加header
    	 * @param header
    	 * @param srcPath
    	 * @throws Exception
    	 */
    	private static void appendFileHeader(byte[] header,String srcPath) throws Exception{
    		RandomAccessFile src = new RandomAccessFile(srcPath, "rw");
    		int srcLength = (int)src.length() ;
    		byte[] buff = new byte[srcLength];
    			src.read(buff , 0, srcLength);
    			src.seek(0);
    			src.write(header);
    			src.seek(header.length);
    			src.write(buff);
    			src.close();
    	}
    	
    }

    效果:

    F盘文件a.txt 内容:aaa
    
    执行程序后a.txt的内容:--文件头--aaa

    2.大文件添加头部内容

    代码实现:

    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.RandomAccessFile;
    import java.nio.MappedByteBuffer;
    import java.nio.channels.FileChannel;
    
    /**
     *  *@author TianMing.Xiong
     */
    public class BigFileAddHead {
        public static void main(String[] args){
            // 将282兆的文件内容头部添加一行字符  "This is a head!"
            String strHead = "This is a head!" ; // 添加的头部内容
            String srcFilePath = "big_file" ; // 原文件路径
            String destFilePath = "big_file_has_head" ; // 添加头部后文件路径 (最终添加头部生成的文件路径)
            long startTime = System.currentTimeMillis();
            try {
                // 映射原文件到内存
                RandomAccessFile srcRandomAccessFile = new RandomAccessFile(srcFilePath, "r");
                FileChannel srcAccessFileChannel = srcRandomAccessFile.getChannel();
                long srcLength = srcAccessFileChannel.size();
                System.out.println("src file size:"+srcLength);  // src file size:296354010
                MappedByteBuffer srcMap = srcAccessFileChannel.map(FileChannel.MapMode.READ_ONLY, 0, srcLength);
    
    
               // 映射目标文件到内存
                RandomAccessFile destRandomAccessFile = new RandomAccessFile(destFilePath, "rw");
                FileChannel destAccessFileChannel = destRandomAccessFile.getChannel();
                long destLength = srcLength + strHead.getBytes().length;
                System.out.println("dest file size:"+destLength);  // dest file size:296354025
                MappedByteBuffer destMap = destAccessFileChannel.map(FileChannel.MapMode.READ_WRITE, 0, destLength);
    
                // 开始文件追加 : 先添加头部内容,再添加原来文件内容
                destMap.position(0);
                destMap.put(strHead.getBytes());
                destMap.put(srcMap);
                destAccessFileChannel.close();
                System.out.println("dest real file size:"+new RandomAccessFile(destFilePath,"r").getChannel().size());
                System.out.println("total time :" + (System.currentTimeMillis() - startTime));// 貌似时间不准确,异步操作?
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    

    控制台输出:

    src file size:296354010
    dest file size:296354025
    dest real file size:296354025
    total time :460
    
    Process finished with exit code 0

    效果:

     添加头部前文件的内容:

    %PDF-1.6
    %����
    4219 0 obj
    <</Linearized 1/L 296347369/O 4221/E 241472/N 506/T 296342513/H [ 479 2168]>>
    endobj
    (内容太多省略)

    添加头部后文件的内容:

    This is a head!%PDF-1.6
    %����
    4219 0 obj
    <</Linearized 1/L 296347369/O 4221/E 241472/N 506/T 296342513/H [ 479 2168]>>
    endobj
    (内容太多,省略)

     

     --------end --------

    展开全文
  • Java添加背景音乐

    万次阅读 2014-07-10 11:30:52
    Java添加背景音乐
  • From: .../* 使用FileWriter 和 BufferedWriter将内容追加到文件末尾 */ import java.io.*; public class Exercise { public static void main(Str
  • Java中向文件末尾添加内容

    千次阅读 2011-03-15 20:51:00
    在文件的末尾添加数据: 方法一: public void appendToFile(String str) {  String filename = "d://append.txt";  FileOutputStream stream;  OutputStreamWriter writer;  try  {
  • java复制pdf并且往pdf文件中添加内容

    千次阅读 2017-02-22 13:43:56
    import java.io.File;import java.io.FileOutputStream;import com.itextpdf.text.*;import com.itextpdf.text.pdf.PdfWriter;public class CreatePDF { public static void main(String[] args) throws Except...
  • java 操作pdf模板(向指定域添加文本内容和图片)
  • 如果想向某个文件最后添加内容,可使用FileWriter fw = new FileWriter("log.txt",true);在创建FileWriter时加个true就可以了。 下面是详细的示例代码: File file = new File("D:/Test.txt"); File dest = new...
  • mport java.awt.FileDialog; import java.awt.Frame; import java.awt.HeadlessException; import java.awt.TextArea; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java
  • 这就相当于提出了一个要求:在文件的第一行添加内容,以前的内容整体向下偏移一行。 遇到的问题:  我开始做的方法是,在代码中 new StringBuffer ,把返回的报文先全部保存到buffer中,等全部
  • Java SWing添加验证码功能

    千次阅读 2017-11-24 10:51:34
    最近跟着写了一个通讯录的Java窗体程序,完成过后,想添加一些自己的内容,首先从登录界面开始入手。最初的登录界面没有验证码,输入账号密码就可以登录,我就从添加验证码开始。 一、要画出验证码,使用的是java ...
  • 首先这个问题是由于我要导入《Java编程思想》的源码所引入的。我尝试用mindview.net上所叙述的方式去build,没能成功;就先把代码直接导入项目中,然后调错。遇到的错误大都是package没有写,类比较多,批处理文件的...
  • java数组添加数组

    万次阅读 2011-11-29 10:19:04
    java添加数组一般有两种方式,第一种为:Arrays.copyOf。第二种为:System.arraycopy。第三种:采用for循环赋值。  第一种内部实现其实就是采用System.arraycopy方式,我们可以查看java jre包源码。源码内容如下: ...
  • Java String字符串内容如何添加双引号

    万次阅读 2018-07-26 19:16:57
    使用转义符 \ (反斜杠)  String str1 = "我是\"中国\"工人";  String str2 = "\"我是中国工人\"";  System.out.println(str1);//输出 我是"......
  • java 读取 excel 表格内容

    千次阅读 多人点赞 2019-06-13 18:40:39
    java 读取 excle 表格内容 一、添加依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.8</version> <...
  • 本篇文档分享通过Java代码在PDF文档中添加印章的方法。内容将分2部分介绍: 1. 添加图片印章。即通过加载现有的印章(以图片形式),添加到PDF指定页面位置 2. 添加动态印章。即加载PDF文档,并在动态的添...
  • Java xml 添加节点

    千次阅读 2013-07-18 15:46:35
    通过java操作生成xml节点的文件test.java,文件内容: package com.pb.test; import java.io.FileOutputStream; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.Docum
  • 作为一个跨平台的编程解决方案,Java显然不能像Delphi那样,在用户界面设计方面提供强大、直观和快捷的设计支持。比如对于文本框的控制,当我们 要在程序中感知用户是否修改了文本框中的内容时,Delphi提供了一个...
  • java map 添加数据

    2016-08-29 03:31:08
    java map 添加key 和 value, 动态添加key和value,key和value是分别每个数组中某一个值,key是a数组中的值a[i],而value是b数组中的一个值b[j], 他们这2个数组不再一个循环,而map的put需要放一个a[i],时,也要放...
  • Java word 内容读取

    万次阅读 2018-09-20 20:33:47
    1、添加依赖关系(网上好多帖子没有写依赖,害我找半天) &lt;dependency&gt;  &lt;groupId&gt;org.apache.poi&lt;/groupId&gt;  &lt;artifactId&gt;poi&lt;/artifactId&...
  • java图片添加水印技术

    千次阅读 2019-05-24 22:39:57
    package ... import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.Fil...
  • java 数组添加和删除

    千次阅读 2018-08-11 00:15:02
    数组删除指定内容 /** * @param content 要删除内容的数组 * @param specific 删除的内容 * @return 删除指定内容后的数组 */ public &amp;lt;T&amp;gt; T[] arraySpeDel(T[] content, T ...
  • Java代码为hbase表添加数据

    千次阅读 2015-11-17 11:56:00
    Java代码添加hbase表数据
  • JAVA添加托盘图标和托盘弹出式菜单

    千次阅读 2016-01-25 09:44:19
    很多程序在运行的过程中会在系统的托盘区域添加托盘图标,方便用户快捷操作,如QQ等,在JDK1.6及其以后的版本中,JAVA也提供了对系统托盘图标的支持。 我们以系统上的网络连接托盘图标为例,首先,我们也准备一张...
  • Java代码添加背景图片

    2016-01-04 09:00:33
    final JPanel operatePanel = new JPanel(); operatePanel.setLayout(new GridBagLayout()); getContentPane().add(operatePanel, BorderLayout.NORTH); 怎么给这个添加背景图片呢

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,024,205
精华内容 409,682
关键字:

java怎么添加内容

java 订阅