/************************************************
 * <p>java对图片的操作(只能使用jpg)</p>
 * 对图片的签章<br>
 * 对图片的缩图<br>
 * <p>Title:java对图片的操作(只能使用jpg)</p>

***********************************************/
package com.cn.wangk.test;

import java.io.*;

import com.sun.image.codec.jpeg.*;//sun公司仅提供了jpg图片文件的编码api

import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import javax.imageio.ImageIO;

/**
 * @author wangkai
 */
public class Test {

/**
     * 
     */
    public Test() {
        try {
            //生成以后新的图片地址
            File fo = new File("c:\\4.jpg");
            //读取的图片文件
            String imagePath = "C:\\Documents and Settings\\Administrator"
                    + "\\My Documents\\My Pictures\\1.jpg";
            //盖章的图片文件
            String toimagepth = "C:\\1.jpg";
            //得到图片的文件流
            InputStream imageIn;
            imageIn = new FileInputStream(new File(imagePath));
            //得到输入的编码器,将文件流进行jpg格式编码
            JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(imageIn);
            //得到编码后的图片对象
            BufferedImage image = decoder.decodeAsBufferedImage();
            Graphics g = image.getGraphics();
            try {
                InputStream imageIn2 = null;
                imageIn2 = new FileInputStream(new File(toimagepth));
                //得到输入的编码器,将文件流进行jpg格式编码
                JPEGImageDecoder decoder2 = JPEGCodec
                        .createJPEGDecoder(imageIn2);
                //得到编码后的图片对象
                BufferedImage image2 = decoder2.decodeAsBufferedImage();

//加盖图片章
                ImageObserver obser = null;
                int x = image.getWidth() - image2.getWidth();
                int y = image.getHeight() - image2.getHeight();
                g.drawImage(image2, x, y, obser);
            } catch (FileNotFoundException e) {
                //打开文件失败,表示章图片不存在,这时候直接加盖文件章(签名)
                g.setFont(new Font("宋体", Font.PLAIN, 18));
                g.drawString("秋水工作室", image.getWidth() - 100,
                        image.getHeight() - 20);
                g.drawString("water_wang@xs.zj.cn", image.getWidth() - 180,
                        image.getHeight() - 10);
            }
            g.dispose();

ImageIO.write(image, "jpeg", fo);
            System.out.println("ok");
        } catch (FileNotFoundException e) {
            // 自动生成 catch 块
            e.printStackTrace();
        } catch (ImageFormatException e) {
            // 自动生成 catch 块
            e.printStackTrace();
        } catch (IOException e) {
            // 自动生成 catch 块
            e.printStackTrace();
        }

}

public static void saveFixedBoundIcon(File imageFile, int height, int width)
            throws Exception {
        double Ratio = 0.0;
        if (imageFile == null || !imageFile.isFile())
            throw new Exception(imageFile + "找不到指定的文件!");
        String filePath = imageFile.getPath();
        BufferedImage Bi = ImageIO.read(imageFile);

if ((Bi.getHeight() > height) || (Bi.getWidth() > width)) {
            if (Bi.getHeight() > Bi.getWidth()) {
                Ratio = (new Integer(height)).doubleValue() / Bi.getHeight();
            } else {
                Ratio = (new Integer(width)).doubleValue() / Bi.getWidth();
            }
            File savefile = new File(filePath + "_" + height + "_" + width
                    + ".jpg");
            Image Itemp = Bi.getScaledInstance(width, height,
                    Image.SCALE_SMOOTH);
            AffineTransformOp op = new AffineTransformOp(AffineTransform
                    .getScaleInstance(Ratio, Ratio), null);
            Itemp = op.filter(Bi, null);

try {
                ImageIO.write((BufferedImage) Itemp, "jpeg", savefile);
            } catch (Exception ex) {

}
        }
    }

public static void main(String[] args) {
        //       Test ts = new Test();
        try {
            Test.saveFixedBoundIcon(new File(
                    "C:\\test.jpg"), 200, 200);
        } catch (Exception e) {
            // 自动生成 catch 块
            e.printStackTrace();
        }
    }
}

出自:Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=219915

[转] 给网站上传的图片盖章相关推荐

  1. [转]给网站上传的图片盖章

    /************************************************ * <p>java对图片的操作(只能使用jpg)</p> * 对图片的签章& ...

  2. 织梦网站上传服务器不显示图片,织梦网站图片不显示图片

    织梦网站图片不显示图片 内容精选 换一换 在"文章列表"插件中,检查"设置 > 列表数目"的"显示文章条数"和"显示分页&q ...

  3. 图片服务器上图片的管理网站上传与前台显示

    图片服务器上图片的管理网站上传与前台显示 代码简介:  很实用的一个图片上传得例子 图片上传:生成缩略图 加文字水印 图片水印 51aspx.png为水印图片 远程图片抓取(保存到本地)支持jpg.g ...

  4. tinymce4.x 上传本地图片(自己写个插件)

    tinymce是一款挺不错的html文本编辑器.但是添加图片是直接添加链接,不能直接选择本地图片. 下面我写了一个插件用于直接上传本地图片. 在tinymce的plugins目录下新建一个upload ...

  5. ckeditor 4.2.1_演示 ckeditor 上传插入图片

    本文内容 FineUI ckeditor fckeditor/ckeditor 演示 ckeditor 4.2.1 上传&插入图片 最近看了一下 FineUI_v3.3.1 控件,对里边的 c ...

  6. php将上传的图片转为base64,html5实现把上传的图片转成base64编码在显示(代码实例)...

    本章给大家介绍html5实现把上传的图片转成base64编码在显示(代码实例).有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 首先我们来详细的看一看base64编码: 什么是bas ...

  7. Django搭建个人博客:上传头像图片

    到目前为止我们的博客处理的都是文字.现代互联网早就进入了"读图"时代,图片的维护.展示也就相当重要. 上一章中预留了avatar字段,用来保存用户上传的头像,现在我们来实现这个功能 ...

  8. MVCWebForm对照学习:文件上传(以图片为例)

    MVC&WebForm对照学习:文件上传(以图片为例) 在web应用中,文件上传是个很普遍的功能,那么今天就来小结一下asp.net中文件上传的方式.首先我们快速来回忆一下WebForm中的文 ...

  9. 有道云笔记markdown上传本地图片的方法

    有道云笔记markdown上传本地图片的方法   有道云笔记markdown模式非会员发现不能直接截屏粘贴图片了.后来网上搜集了下方法,发现了好几种解决办法.   当然,如果你一年,不差那两百块钱,直 ...

最新文章

  1. vue动态发布到线上_vue在线动态切换主题色方案
  2. Java并发包之闭锁/栅栏/信号量(转)
  3. 交换机怎么使用vtp
  4. Oracle 子查询
  5. matplotlib 标签_matplotlib数据可视化基础设置
  6. [XSY3383]多线程(笛卡尔树,DP)
  7. 一类动词二类动词三类动词_基于http动词的完全无效授权技术
  8. SVD(6.5.1定理证明观察3)
  9. js获取页面URL地址并判断URL是否包含具体值
  10. 设计模式之一(单例模式)
  11. 探讨基于球谐函数的全局光照
  12. linux查看录音驱动程序,Linux 下查看麦克风或音频采集设备
  13. 黑苹果双系统访问其他磁盘windows/U盘或移动硬盘格式NTFS
  14. 心力:创业者和管理者如何在事与难中精进(附提升心力的12种方法)
  15. NOIP蒟蒻组初赛攻略
  16. Window环境下 Jenkins Master/Slaver模式 + Svn 部署
  17. android 检测输入法,Android判断软键盘 输入法 是否显示
  18. (附源码)spring boot物联网智能管理平台 毕业设计 211120
  19. 如何设置在电脑屏幕和显示器屏幕显示不同的画面窗口
  20. scikit-image HOG feature 提取函数使用心得。

热门文章

  1. android 双卡的铃声设置在哪里,安卓android手机铃声设置方法
  2. 学习PS都需要准备什么?
  3. 【Android 安装包优化】7z 文件压缩格式 ( 7z 格式简介 | 7z 命令使用说明 )
  4. 数据归归一化方法(标准化)
  5. webpack的配置和使用
  6. 基于asp.net执勤综合管理系统的设计与实现
  7. 每个人来到世上,都是匆匆过客
  8. Java基本数据类型默认值和取值范围详解
  9. 如何重置阿里云服务器系统以及更换系统盘(即将ECS服务器重置为初始状态)
  10. Google Earth Engine(GEE)——在线计算列表二维ee.List对象为线性回归方程计算slope和残差