GVKun编程网logo

JAVA 通过URL生成水印图(java通过url获取图片)

21

在本文中,我们将为您详细介绍JAVA通过URL生成水印图的相关知识,并且为您解答关于java通过url获取图片的疑问,此外,我们还会提供一些关于00003-asposeforjava生成水印刻章等,可

在本文中,我们将为您详细介绍JAVA 通过URL生成水印图的相关知识,并且为您解答关于java通过url获取图片的疑问,此外,我们还会提供一些关于00003-aspose for java 生成水印刻章等,可转为word,pic,pdf、009-生成水印图片+生成缩略图(PHP)、C#动态生成水印图片的类、Django 通过url 获取url名称的有用信息。

本文目录一览:

JAVA 通过URL生成水印图(java通过url获取图片)

JAVA 通过URL生成水印图(java通过url获取图片)

@Override    public OutputStream watermark1(String ossURL,String logoOsskey,HttpServletResponse response) {        lock.lock();        OutputStream os = null;        InputStream imagestream=null;        //水印        String logoPath = ossService.getossURL(logoOsskey,bucket);        //原图ossURL        try {            os=response.getoutputStream();            imagestream = getimagestream(ossURL);            Image image2 = ImageIO.read(imagestream);            //获取原图信息            int width = image2.getWidth(null);            int height = image2.getHeight(null);            BufferedImage bufferedImage = new BufferedImage(width,height,BufferedImage.TYPE_INT_BGR);            Graphics2D g = bufferedImage.createGraphics();            g.drawImage(image2,width,null);//            //设置多个图片水印            InputStream logo = getimagestream(logoPath);            Image imagelogo = ImageIO.read(logo);            int logoWidth = imagelogo.getWidth(null);            int logoHeight = imagelogo.getHeight(null);            //设置透明度,ALPHA为接口中自定义的值透明度 0.3F            g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,ALPHA));            //完成图片旋转30            g.rotate(Math.toradians(0),bufferedImage.getWidth() / 2,bufferedImage.getHeight() / 2);            int x = -width / 2;            int y = -height / 2;            while (x < width * 1.5) {                y = -height / 2;                while (y < height * 1.5) {                    g.drawImage(imagelogo,x,y,null);                    y += logoHeight + 200;                }                x += logoHeight + 300;            }            g.dispose();            Thumbnails.Builder thumbnail = Thumbnails.of(bufferedImage);            thumbnail.size(x,y);            ImageIO.write(thumbnail.asBufferedImage(),"png",os);            //JPEGImageEncoder en = JPEGCodec.createJPEGEncoder(os);            //en.encode(bufferedImage);        } catch (IOException e) {            e.printstacktrace();        } finally {            if (os != null) {                try {                    os.flush();                    os.close();                } catch (IOException e) {                    e.printstacktrace();                }            }            if(imagestream!=null){                try {                    imagestream.close();                }catch (IOException e){                    e.printstacktrace();                }            }        }        lock.unlock();        return os;    }

00003-aspose for java 生成水印刻章等,可转为word,pic,pdf

00003-aspose for java 生成水印刻章等,可转为word,pic,pdf

对应java代码:

package com.yoooya.ytp.utils.doc;


import com.aspose.words.Document;
import com.aspose.words.License;

import com.aspose.words.SaveFormat;
import com.yoooya.ytp.utils.DateUtils;
import com.yoooya.ytp.utils.IdUtils;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import sun.misc.BASE64Encoder;

import java.io.*;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;


/**
 * cjianquan 2020/1/3
 */
public class ExportWord {

    private Configuration configuration = null;
    private static int i = 9;

    public ExportWord() {
        configuration = new Configuration();
        configuration.setDefaultEncoding("UTF-8");
    }

    public File createWordToPic(Map<String, Object> dataMap){
        try{
            String path = ExportWord.class.getResource("/").getPath()+"aspose/";
            File pathFile=new File(path);
            if(!pathFile.exists()){
                pathFile.mkdirs();
            }
            return createWord(dataMap,path,"wcsyzm.ftl");
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }

    public File createWord(Map<String, Object> dataMap, String filePath, String tmpName) {
        try{
            configuration.setDirectoryForTemplateLoading(new File(filePath));

            Template t = null;
            try {
                t = configuration.getTemplate(tmpName); // 文件名
            } catch (IOException e) {
                e.printStackTrace();
            }

            String fileName = String.valueOf(IdUtils.id()) + ".doc";
            String pngFileName = String.valueOf(IdUtils.id()) + ".png";
            File outFile = new File(filePath+"temp", fileName);
            File outPngFile = new File(filePath+"temp", pngFileName);
            Writer out = null;
            try {
                out = new BufferedWriter(new OutputStreamWriter(
                        new FileOutputStream(outFile), "utf-8"));
            } catch (Exception e1) {
                e1.printStackTrace();
            }
            try {
                t.process(dataMap, out);
                out.close();
                getLicense(filePath);
                FileOutputStream os = new FileOutputStream(outPngFile);
                FileInputStream iStream = new FileInputStream(outFile);
                Document doc = new Document(iStream);
//            doc.save(os, com.aspose.words.SaveFormat.PDF);
                doc.save(os, SaveFormat.PNG);
            } catch (TemplateException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

            return outPngFile;
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;

    }

    /** 获取注册文件
     */
    public static void getLicense(String filePath) {
        String path = filePath + "/license.xml";
        InputStream is;
        try {
            is = new FileInputStream(new File(path));
            License license = new License();
            license.setLicense(is);
        } catch (FileNotFoundException e) {
            // logger.error("license.xml file not found");
        } catch (Exception e) {
            // logger.error("license register failed");
        }
    }

    public static void doc2pdf(String wordPath, String pdfPath) {
        try {
            long old = System.currentTimeMillis();
            File file = new File(pdfPath); // 新建一个pdf文档
            FileOutputStream os = new FileOutputStream(file);
            Document doc = new Document(wordPath); // Address是将要被转化的word文档
            doc.save(os, com.aspose.words.SaveFormat.PDF);
            long now = System.currentTimeMillis();
            os.close();
            System.out.println("共耗时:" + ((now - old) / 1000.0) + "秒"); // 转化用时
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static String GetImageStr(String imgFilePath) {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
        String basePath = ExportWord.class.getResource("/").toString();
        basePath = basePath.replaceAll("file:/","");
        byte[] data = null;
        // 读取图片字节数组
        try {
            InputStream in = new FileInputStream(basePath+"aspose/"+imgFilePath);
            data = new byte[in.available()];
            in.read(data);
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 对字节数组Base64编码
        BASE64Encoder encoder = new BASE64Encoder();
        return encoder.encode(data);// 返回Base64编码过的字节数组字符串
    }

    private void getData(Map<String, Object> dataMap) {
        dataMap.put("company", "原力肽");
        dataMap.put("address", "某某地址");
        dataMap.put("csmj", "100");
        dataMap.put("userCompany", "陈建泉个体户");
        dataMap.put("dateStart", "2019年12月1日");
        dataMap.put("dateEnd", "2020年12月1日");
        dataMap.put("nowDate", "2020年1月3日");
        dataMap.put("imageData", GetImageStr("seal.png"));
//        dataMap.put("address", "福建省泉州市鲤城区");
//        dataMap.put("phone", "13459260612");

    }

    public static void main(String[] args) throws Exception {
        /*ExportWord test = new ExportWord();
        String basePath = ExportWord.class.getResource("/").toString();
        basePath = basePath.replaceAll("file:/","");
        System.out.println("basePath="+basePath);
        Map<String, Object> dataMap = new HashMap<String, Object>();
        test.getData(dataMap);
        test.createWord(dataMap, basePath+"aspose/","wcsyzm.ftl");*/

        ExportWord exportWord = new ExportWord();
        Map<String, Object> dataMap = new HashMap<String, Object>();
        dataMap.put("company", "company11");
        dataMap.put("managerName","managerName22");
        dataMap.put("address", "address33");
        dataMap.put("csmj", "csmj44");
        dataMap.put("userCompany", "userCompany55");
        dataMap.put("dateStart", "yyyy年MM月dd日 666");
        dataMap.put("dateEnd", "yyyy年MM月dd日777");
        dataMap.put("nowDate", DateUtils.format(new Date(),"yyyy年MM月dd日"));
        dataMap.put("imageData", exportWord.GetImageStr("seal.png"));

        File picFile = exportWord.createWordToPic(dataMap);
        System.out.println("picFile="+picFile.getAbsolutePath());
    }

}

其中 license.xml 是aspose for java 的license文件。

wcsyzm.ftl 文件,是有doc文件另存为ftl得到了。
dataMap的key值,对应的是ftl的参数,类似:${company}

原始word的内容如图:
image

seal.png 是一个要加的水印 或者刻章图片。。

009-生成水印图片+生成缩略图(PHP)

009-生成水印图片+生成缩略图(PHP)

本篇文章介绍的内容是 生成水印图片和生成缩略图(php) ,现在分享给大家,有需要的朋友可以看一下


<?php

/**
 * 生成水印图片
 */
//1.获取图片资源
$big = imagecreatefromjpeg(&#39;./kaola.jpg&#39;);  //大图
$small = imagecreatefrompng(&#39;./t1.png&#39;);    //水印图

//2.获取图像大小
list($bw , $bh) = getimagesize(&#39;./kaola.jpg&#39;);
list($w , $h) = getimagesize(&#39;./t1.png&#39;);

//imagecopymerge(dst_im, src_im, dst_x, dst_y, src_x, src_y, src_w, src_h, pct)
//imagecopymerge("目标图","水印图","目标图的x坐标","y坐标","水印图的x","y","宽","高","透明度");
imagecopymerge($big, $small, $bw-$w, $bh-$h, 0, 0, $w, $h, 40);

imagepng($big , &#39;t4.png&#39;);

imagedestroy($big);
imagedestroy($small);


##################################################################################

/**
 * 生成缩略图
 */
$big = imagecreatefromjpeg(&#39;./kaola.jpg&#39;);
list($w , $h) = getimagesize(&#39;./kaola.jpg&#39;);

//创建小画布
$small = imagecreatetruecolor($w/2, $h/2);

//拷贝图像并修改大小
//imagecopyresampled(dst_image, src_image, dst_x, dst_y, src_x, src_y, dst_w, dst_h, src_w, src_h)
imagecopyresampled($small, $big, 0, 0, 0, 0, $w/2, $h/2, $w, $h);

imagepng($small , &#39;./t6.png&#39;);

imagedestroy($big);
imagedestroy($small);

?>
登录后复制

函数封装

https://blog.csdn.net/liguanjie8/article/details/79835373

相关推荐:

008-php生成随机验证码

立即学习“PHP免费学习笔记(深入)”;

007-PHP之GD画图流程

以上就是009-生成水印图片+生成缩略图(PHP) 的详细内容,更多请关注php中文网其它相关文章!

C#动态生成水印图片的类

C#动态生成水印图片的类

下面是小编 jb51.cc 通过网络收集整理的代码片段。

小编小编现在分享给大家,也给大家做个参考。

1、可以指定文字字体、大小和颜色(注:指定的文字在WEB服务器上需要有该字库);
2、可以加文字阴影;
3、可以指定文字的透明度;
4、可以指定背景图片或背景颜色;
5、可以指定生成的图片大小(宽度与高度);
6、可以指定文字的位置(左边距和上边距);
7、当用户设定的文字字号太大,能自动调整文字大小使之能适应生成图片的大小。
using System.Drawing;
using System.Drawing.drawing2d;
using System.Drawing.Imaging;
namespace Ycweb.Controls.Utility
{
     /**/
     /// <summary>
     /// WaterMark
     /// </summary>
     public class Watermark
     {
          private int _width;
          private int _height;
          private string _fontFamily;
          private int _fontSize;
          private bool _adaptable;
          private FontStyle _fontStyle;
          private bool _shadow;
          private string _backgroundImage;
          private Color _bgColor;
          private int _left;
          private string _resultimage;
          private string _text;
          private int _top;
          private int _alpha;
          private int _red;
          private int _green;
          private int _blue;
          private long _quality;
          public Watermark()
          {
                //
                // Todo: Add constructor logic here
                //
                _width = 460;
                _height = 30;
                _fontFamily = "华文行楷";
                _fontSize = 20;
                _fontStyle = FontStyle.Regular;
                _adaptable = true;
                _shadow = false;
                _left = 0;
                _top = 0;
                _alpha = 255;
                _red = 0;
                _green = 0;
                _blue = 0;
                _backgroundImage = "";
                _quality = 100;
                _bgColor = Color.FromArgb(255,229,229);
          }
          /**/
          /// <summary>
          /// 字体
          /// </summary>
          public string FontFamily
          {
                set { this._fontFamily = value; }
          }
          /**/
          /// <summary>
          /// 文字大小
          /// </summary>
          public int FontSize
          {
                set { this._fontSize = value; }
          }
          /**/
          /// <summary>
          /// 文字风格
          /// </summary>
          public FontStyle FontStyle
          {
                get { return _fontStyle; }
                set { _fontStyle = value; }
          }
          /**/
          /// <summary>
          /// 透明度0-255,255表示不透明
          /// </summary>
          public int Alpha
          {
                get { return _alpha; }
                set { _alpha = value; }
          }
          /**/
          /// <summary>
          /// 水印文字是否使用阴影
          /// </summary>
          public bool Shadow
          {
                get { return _shadow; }
                set { _shadow = value; }
          }
          public int Red
          {
                get { return _red; }
                set { _red = value; }
          }
          public int Green
          {
                get { return _green; }
                set { _green = value; }
          }
          public int Blue
          {
                get { return _blue; }
                set { _blue = value; }
          }
          /**/
          /// <summary>
          /// 底图
          /// </summary>
          public string BackgroundImage
          {
                set { this._backgroundImage = value; }
          }
          /**/
          /// <summary>
          /// 水印文字的左边距
          /// </summary>
          public int Left
          {
                set { this._left = value; }
          }
          /**/
          /// <summary>
          /// 水印文字的顶边距
          /// </summary>
          public int Top
          {
                set { this._top = value; }
          }
          /**/
          /// <summary>
          /// 生成后的图片
          /// </summary>
          public string Resultimage
          {
                set { this._resultimage = value; }
          }
          /**/
          /// <summary>
          /// 水印文本
          /// </summary>
          public string Text
          {
                set { this._text = value; }
          }
          /**/
          /// <summary>
          /// 生成图片的宽度
          /// </summary>
          public int Width
          {
                get { return _width; }
                set { _width = value; }
          }
          /**/
          /// <summary>
          /// 生成图片的高度
          /// </summary>
          public int Height
          {
                get { return _height; }
                set { _height = value; }
          }
          /**/
          /// <summary>
          /// 若文字太大,是否根据背景图来调整文字大小,默认为适应
          /// </summary>
          public bool Adaptable
          {
                get { return _adaptable; }
                set { _adaptable = value; }
          }
          public Color BgColor
          {
                get { return _bgColor; }
                set { _bgColor = value; }
          }
          /**/
          /// <summary>
          /// 输出图片质量,质量范围0-100,类型为long
          /// </summary>
          public long Quality
          {
                get { return _quality; }
                set { _quality = value; }
          }
          /**/
          /// <summary>
          /// 立即生成水印效果图
          /// </summary>
          /// <returns>生成成功返回true,否则返回false</returns>
          public bool Create()
          {
                try
                {
                     Bitmap bitmap;
                     Graphics g;
                     //使用纯背景色
                     if (this._backgroundImage.Trim() == "")
                     {
                          bitmap = new Bitmap(this._width,this._height,PixelFormat.Format64bppArgb);
                          g = Graphics.FromImage(bitmap);
                          g.Clear(this._bgColor);
                     }
                     else
                     {
                          bitmap = new Bitmap(Image.FromFile(this._backgroundImage));
                          g = Graphics.FromImage(bitmap);
                     }
                     g.SmoothingMode = SmoothingMode.HighQuality;
                     g.InterpolationMode = InterpolationMode.HighQualityBicubic;
                     g.CompositingQuality = CompositingQuality.HighQuality;
                     Font f = new Font(_fontFamily,_fontSize,_fontStyle);
                     Sizef size = g.MeasureString(_text,f);
                     // 调整文字大小直到能适应图片尺寸
                     while (_adaptable == true && size.Width > bitmap.Width)
                     {
                          _fontSize--;
                          f = new Font(_fontFamily,_fontStyle);
                          size = g.MeasureString(_text,f);
                     }
                     Brush b = new SolidBrush(Color.FromArgb(_alpha,_red,_green,_blue));
                     StringFormat StrFormat = new StringFormat();
                     StrFormat.Alignment = Stringalignment.Near;
                     if (this._shadow)
                     {
                          Brush b2 = new SolidBrush(Color.FromArgb(90,0));
                          g.DrawString(_text,f,b2,_left + 2,_top + 1);
                     }
                     g.DrawString(_text,b,new PointF(_left,_top),StrFormat);
                     bitmap.Save(this._resultimage,ImageFormat.Jpeg);
                     bitmap.dispose();
                     g.dispose();
                     return true;
                }
                catch
                {
                     return false;
                }
          }
     }
}

以上是小编(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给程序员好友。

Django 通过url 获取url名称

Django 通过url 获取url名称

from django.urls import resolve,reverse

# reverse 通过别名获取url

# resolve 通过url获取别名
# 使用resolve方法,该方法返回一个ResolverMatch对象,该对象有以下方法:

    func

    args

    kwargs

    url_name

    route

    app_name

    app_names

    namespace

    namespaces

    view_name

def index(request):
    rm = resolve(request.path)
    app_name = rm.app_name
    url_name = rm.url_name
    

 

关于JAVA 通过URL生成水印图java通过url获取图片的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于00003-aspose for java 生成水印刻章等,可转为word,pic,pdf、009-生成水印图片+生成缩略图(PHP)、C#动态生成水印图片的类、Django 通过url 获取url名称的相关知识,请在本站寻找。

本文标签: