`
PrideSnow
  • 浏览: 240890 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

在图片对应的位置写入文本。

    博客分类:
  • java
阅读更多

package com.cxsoft.rap.test;

 

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics2D;

import java.awt.image.BufferedImage;

import java.io.ByteArrayOutputStream;

import java.io.File;

import java.io.IOException;

import java.net.URL;

 

import javax.imageio.ImageIO;

 

import org.apache.commons.io.FileUtils;

 

import com.sun.image.codec.jpeg.JPEGCodec;

import com.sun.image.codec.jpeg.JPEGEncodeParam;

import com.sun.image.codec.jpeg.JPEGImageEncoder;

 

public class UpdateImg {

  private Font font = null;// 添加字体的属性设置

 

  private Graphics2D g = null;

 

  private int fontsize = 20;

 

  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, "jpg", 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.BOLD, 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.BLACK);

      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;

  }

 

  /**

   * 修改图片,返回修改后的图片缓冲区(输出多个文本段) xorytrue表示将内容在一行中输出;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 {font-size: 10pt; font-family:

分享到:
评论

相关推荐

    将Excel数据对应写入已做好的Word模板的指定位置(分发)

    2. **Excel数据准备**:在Excel文件“将Excel数据对应写入已做好的Word模板的指定位置(分发).xls”中,你需要组织好对应的数据结构,每行数据应与Word模板中的一份通知相对应。例如,每一行可能包含授课人的姓名、...

    将Excel数据对应写入已做好的Word模板的指定位置(统发)

    这里我们关注的是如何使用Excel VBA宏来实现将Excel数据对应写入已做好的Word模板的指定位置,这通常被称为“统发”操作,即批量处理并自动生成定制化的文档。这个过程涉及到Excel的数据管理和VBA编程,以及Word的...

    易语言删除指定位置文本

    这需要对字符串索引有深入的理解,因为字符串在内存中是有序排列的,每个字符都有其对应的索引位置。在易语言中,我们可以使用字符串函数来实现这个功能,比如`字符串左`、`字符串右`、`字符串中部`等,结合索引来...

    C#文本文件读取和写入(文件、目录操作)

    2. **写入文本文件**: 对于简单写入,`File.WriteAllText()`和`File.WriteAllLines()`分别用于写入字符串和字符串数组。如果需要追加内容,可使用`File.AppendText()`创建`StreamWriter`实例。对于更复杂的写入...

    将图片信息写入XML

    将导入的图片中颜色相同的点的范围写入xml。 使用说明: 2.2.1 默认 系统窗体根据配置文件显示当前时间应关闭的区域。 注:可在界面下方的表格中修改关闭区域的相关信息,按【Enter】键完成修改,相关信息将在...

    文本文件写入

    在IT领域,文本文件写入数据库是一项常见的操作,特别是在数据交换和迁移过程中。本文将详细讨论如何利用PowerBuilder的`ImportFile()`函数高效地实现这一功能,并探讨相关的注意事项。 `ImportFile()`函数是Power...

    搜索磁盘按照扩展名分类写入文本

    标题中的“搜索磁盘按照扩展名分类写入文本”指的是一个使用批处理(BAT)脚本在Windows操作系统中实现的功能。这个功能可以帮助用户高效地整理硬盘上的文件,根据文件的扩展名将它们分门别类,并将每个扩展名对应的...

    C#文本文件操作实例---杨辉三角形写入读出

    在这个实例中,我们将深入探讨如何利用C#进行文本文件的操作,特别是涉及杨辉三角形的写入与读出。杨辉三角形是数学中的一个重要概念,它在组合数学中扮演着关键角色,同时也常被用作教学示例,帮助理解二项式系数。...

    C#实现DataGridView转换为Excel(包括图片和文本)

    3. **写入文本数据**:遍历DataGridView,将文本数据写入工作表的相应单元格。 4. **处理图片**:对于每一张图片,需要将其保存为临时文件,然后在Excel中插入图片,最后删除临时文件。 5. **格式化和调整**:根据...

    java的文本读取和写入

    - **XieWenJian2.java**:与`xieWenJian.java`类似,可能是实现了使用`FileWriter`和`BufferedWriter`写入文本文件,或者包含了错误处理和优化。 6. **注意点:** - **编码问题**:Java默认使用平台默认的字符...

    利用IDL语言打开HDF格式的MODIS文件以文本输出,一个hdf文件对应一个文本结果

    7. **文本输出**:使用IDL的`FILE_WRITE`或`FITS_WRITE`函数(如果需要保留原始的地理坐标信息)将筛选后的像素位置写入文本文件。每行可以表示一个像素,包含其坐标和对应的数值。 8. **处理多个文件**:对于一...

    BAT批处理脚本-将txt文件名写入首行(保留源文件).zip

    在这个特定的案例中,我们有一个名为"将txt文件名写入首行(保留源文件).bat"的批处理脚本,它设计用于对TXT文本文件进行操作,将每个文件的文件名添加到文件内容的开头,并且在处理后仍保留原始文件。 批处理脚本的...

    富文本编辑器导出word

    富文本编辑器是一种常见的网页和应用程序组件,它允许用户创建和编辑复杂的文本内容,包括格式化文字、插入图片、超链接等。在许多业务场景中,我们可能需要将富文本编辑器中的内容导出为Word文档,以便于分享、打印...

    POI替换文本和图片,解决分割异常替换不完全的问题

    在这个场景中,我们关注的是如何使用POI中的`XWPFDocument`类来有效地替换文本和图片,并解决在分割或替换过程中可能出现的异常,以及保持原有的文档样式不变。 首先,让我们深入了解`XWPFDocument`类。它是Apache ...

    Android-根据翻译读取中文对应的英文写入不同的文件

    本项目“Android-根据翻译读取中文对应的英文写入不同的文件”聚焦于这一过程,特别是如何自动化处理大量翻译后的文本,将其分别写入相应的资源文件中。以下是对这个主题的详细讲解: 1. **Android 国际化基础**: ...

    Python实现图片转ASCII文本图形(含PPT)

    5. **生成文本**:遍历每个像素,根据其灰度值选取对应的ASCII字符,并将其写入输出文本。这个过程可以通过循环和条件语句实现。 6. **输出结果**:最后,将生成的ASCII字符数组输出到文件或控制台,完成转换。 在...

    Sentiment Analysis1_NLP_NLP情感分析_csvxlsx_Sentiment写入csv_文本分析

    Python的pandas库提供了方便的写入功能,可以将得分和对应文本导出为新的CSV文件。这有助于用户进一步分析数据分布,比如找出最积极和最消极的评论,或者查看不同类别(如产品、服务)的情感趋势。 在实际应用中,...

    易语言速度很快的文本操作汇编代码

    而"速度很快的文本操作汇编代码"则涉及到编程语言底层的优化技术,尤其是汇编语言的应用,它可以直接对计算机硬件进行操作,因此在处理特定任务时,如文本操作,可能会比高级语言更加高效。 汇编语言是计算机科学的...

    文本编辑器(java)

    在这个文本编辑器中,用户可以看到“打开”、“保存”、“另存为”等功能,这些都是通过JFileChooser组件实现的,它可以用来让用户选择本地文件进行读取和写入。同时,编辑器还支持字体设计和大小调整,这涉及到...

    图片转换工具及说明,用于图片与十六进制数转换

    3. **输出到文本文件**:转换后的十六进制序列被写入一个新的文本文件中,这样用户就可以查看或处理这些数据。 在实际应用中,这种转换可能有多种用途: - **数据存储**:在数据库或其他非结构化存储中,十六进制...

Global site tag (gtag.js) - Google Analytics