在本文中,我们将为您详细介绍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获取图片)
- 00003-aspose for java 生成水印刻章等,可转为word,pic,pdf
- 009-生成水印图片+生成缩略图(PHP)
- C#动态生成水印图片的类
- Django 通过url 获取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
对应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的内容如图:
seal.png 是一个要加的水印 或者刻章图片。。
009-生成水印图片+生成缩略图(PHP)
本篇文章介绍的内容是 生成水印图片和生成缩略图(php) ,现在分享给大家,有需要的朋友可以看一下
<?php /** * 生成水印图片 */ //1.获取图片资源 $big = imagecreatefromjpeg('./kaola.jpg'); //大图 $small = imagecreatefrompng('./t1.png'); //水印图 //2.获取图像大小 list($bw , $bh) = getimagesize('./kaola.jpg'); list($w , $h) = getimagesize('./t1.png'); //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 , 't4.png'); imagedestroy($big); imagedestroy($small); ################################################################################## /** * 生成缩略图 */ $big = imagecreatefromjpeg('./kaola.jpg'); list($w , $h) = getimagesize('./kaola.jpg'); //创建小画布 $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 , './t6.png'); imagedestroy($big); imagedestroy($small); ?>
函数封装
https://blog.csdn.net/liguanjie8/article/details/79835373
相关推荐:
008-php生成随机验证码
立即学习“PHP免费学习笔记(深入)”;
007-PHP之GD画图流程
以上就是009-生成水印图片+生成缩略图(PHP) 的详细内容,更多请关注php中文网其它相关文章!
C#动态生成水印图片的类
下面是小编 jb51.cc 通过网络收集整理的代码片段。
小编小编现在分享给大家,也给大家做个参考。
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名称
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名称的相关知识,请在本站寻找。
本文标签: