图片打水印 缩放 以及输入流转换

图片打水印和缩放:

 public final static BufferedImage[] pressImage(InputStream srcImg, String waterImg,float alpha) throws IOException {

    	 //File file = new File(targetImg);
        Image image = ImageIO.read(srcImg);
        int width = image.getWidth(null);
        int height = image.getHeight(null);
        BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        Graphics2D g = bufferedImage.createGraphics();
        g.drawImage(image, 0, 0, width, height, null);

        Image waterImage = ImageIO.read(new File(waterImg));    // 水印文件

        int width_1 = waterImage.getWidth(null);
        int height_1 = waterImage.getHeight(null);
        g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha));

        int div=(int) (0.1*width_1);

        for(int y=0,row=0;y<height;y+=height_1+div,row++)
        {
        	int x=0;

            for(;x<width;x+=width_1+div)
            {
            	g.drawImage(waterImage, x, y, width_1, height_1, null); // 水印文件结束
            }
        }             

        g.dispose();

        BufferedImage bufferedImage2=Thumbnails.of(bufferedImage).size(100, 100).asBufferedImage();

       return new BufferedImage[]{bufferedImage,bufferedImage2};

    }

图片的缩放使用了Thumbnails这个工具,(其实它也可以用来打水印的,不过我还没有研究)

jar 包或者maven 请自行搜索

需要特别注意的是 Thumbnails 默认是按照等比例进行缩放的并且它的缩放规则是:

假设 把图片所放到 200*300

* 若图片横比200小,高比300小,不变

* 若图片横比200小,高比300大,高缩小到300,图片比例不变

* 若图片横比200大,高比300小,横缩小到200,图片比例不变

* 若图片横比200大,高比300大,图片按比例缩小,横为200或高为300

bufferInage转换 inputSteam

private InputStream getInputstreamFromBufferedImage(BufferedImage img) throws IOException{
		 	ByteArrayOutputStream bs =new ByteArrayOutputStream();
		 	ImageOutputStream imOut =ImageIO.createImageOutputStream(bs);
	        ImageIO.write(img,"jpg",imOut); //scaledImage1为BufferedImage,jpg为图像的类型

	        InputStream is =new ByteArrayInputStream(bs.toByteArray());
	        return is;

	}
时间: 2024-10-25 21:38:16

图片打水印 缩放 以及输入流转换的相关文章

Java图片缩略图裁剪水印缩放旋转压缩转格式-Thumbnailator图像处理

前言 java开发中经常遇到对图片的处理,JDK中也提供了对应的工具类,不过处理起来很麻烦,Thumbnailator是一个优秀的图片处理的开源Java类库,处理效果远比Java API的好,从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的生成方式,同时保持了需要写入的最低限度的代码量.还支持对一个目录的所有图片进行批量处理操作,下边就和大家分享一下java中用Thumbnailator做图片各种处理的方法(相关jar包可在最

通过php安装Imagick扩展给动态gif图片打水印

通过php安装Imagick扩展给动态gif图片打水印 一直以来php处理图片都是以gd为主流,直到近些年Imagick的使用才渐渐变多.gd通常用来缩放图片,给图片打水印等基本功能,对于复杂效果如制作图标按钮.图倒影等滤镜功能就会力不从心.尤其对于有多帧图片的动态gif图打水印,如果使用gd像处理普通jpg那样去打水印,打完水印后的图片只剩下第一帧,没有动态效果.Imagick就能很好的胜任这一点,使得php给动态gif图片打水印成为可能,而且它还具有内存占用小,画质高的特点.下面是分别使用g

图片加水印 图片验证码

图片加水印 1   获取这张图片 System.Drawing.Image img = System.Drawing.Image.FromStream(FileUpload1.FileContent); 2 给图片加水印 Graphics g = Graphics.FromImage(img); string s = "WWW.ITNBA.COM";         s 给图片加的水印文字 Font f = new Font("微软雅黑", 30); Brush b

给图片加水印

public void DoAddMark(object ParameterInfo) { #region 拆分参数 List<object> listParameter = (List<object>)ParameterInfo; ConnParameter connpar = (ConnParameter)listParameter[0]; //连接数据库参数 string[] strImgPath = (string[])listParameter[1]; //图片源路径 s

图片加水印信息处理

一,准备步骤  1.1 原图:D:\\文件表\\9252150_092049419327_2.jpg 1.2 logo图片:D:\\文件表\\img\\生物质燃烧.png 二,源码 根据自己的需要适当调整 1 /** 2 * 3 * @param srcImgPath 原图片的路径 4 * @param tarImgPath 新图片的路径 5 * @param Content1 水印的内容1 6 * @param logoImg logo图片路径 7 * @param Content2 水印的内

jQuery实现的图片等比例缩放效果

jQuery实现的图片等比例缩放效果:如果一个容器中放一个比容器还要大的图,那就可能就造成布局出现问题,就算是不容器大,有时候也看起来不够美观,这时候就要限制图片的尺寸,当然不能变形,否则就难看了,下面就介绍一下如何使用jQuery实现等比例缩放效果.代码如下: <div id="demo"> <img src="a.jpg" width="800" height="300" alt="图片&quo

IOS基础UI之(三)手写UI和storyboard方式实现图片移动和缩放

手写UI是最早进行UI界面布局的方法,优点是灵活自由,缺点是使代码看起来比较长.平时学习的时候可以多尝试手写ui,这样会更深入熟悉控件.storyboard开发效率相对比较高.实际开发中看情况而定!! 下面用这两种方式分别实现图片移动和缩放. 功能描述: 1. 界面布局 2.点击相应的按钮,对显示的图片移动.缩放. 效果如下:    掌握点: 一:熟悉代码的描述UIButton属性 1.UIButton状态 UIControlStateNormal          // 正常状态 UICont

UIImage图片处理:缩放、设定大小、存储 (转载)

//1.等比率缩放 - (UIImage *)scaleImage:(UIImage *)image toScale:(float)scaleSize{ UIGraphicsBeginImageContext(CGSizeMake(image.size.width * scaleSize, image.size.height * scaleSize); [image drawInRect:CGRectMake(0, 0, image.size.width * scaleSize, image.s

ASP.NET为图片加上水印

为我们发布的图片加上一个水印,也是我们经常要做的事情,那怎么样来做呢,下面就一步步开始吧 首先是一个制作水印的类:ImageHandler,代码如下: C#代码 using System; using System.IO; using System.Drawing; using System.Drawing.Imaging; using System.Data; using System.Configuration; using System.Linq; using System.Web; us