一、将图片保存到本地

下面的代码是将图片保存到/img目录下:

代码如下:

import process; 
import fsys.stream;
import gdip.bitmap;
import inet.http;

//获取一个网络图片
var pngData = inet.http().get("http://www.baidu.com/img/baidu_logo.gif");

//转换为GDI对象处理
var bitmap = gdip.bitmap( pngData ); // 创建GDI+位图对象

//转换为文件流
var stream = fsys.stream();
bitmap.saveToStream(stream,"*.png"); // 转换为文件流

//获取图片字符串 保存到本地
var str  = stream.readAll();
string.save("/img/test.png",str );

process.explore_select("/img/test.png"); //打开资源管理器,选定该文件

保存后的文件如下:

上面的代码将保存的文件名写死了,我们可以将文件名做成随机的

import process; 
import fsys.stream;
import gdip.bitmap;
import inet.http;

//获取一个网络图片
var pngData = inet.http().get("http://www.baidu.com/img/baidu_logo.gif");

//转换为GDI对象处理
var bitmap = gdip.bitmap( pngData );

//转换为文件流
var stream = fsys.stream();
bitmap.saveToStream(stream,"*.png");

//获取图片字符串 保存到本地
var str  = stream.readAll();
var fileName = "pic-"+time.stamp() + math.random(1000,9999)+".png"
var relativePath = "/img/"+fileName
string.save(relativePath,str );

process.explore_select(relativePath);

保存后的文件如下:

二、将图片加水印再保存到本地

给图片打水印其实就是在图片上写文字,先将图片转为GDI+位图对象,再将位图对象转为图形对象graphics,然后在图形对象中输出文字.

import inet.http;
import gdip;
import gdip.bitmap;
import process;
var baiduLogo = inet.http().get("https://up.enterdesk.com/edpic_source/d2/75/42/d275428f3dcc7badcdcec440547ea0ed.jpg");
var bmp = gdip.bitmap( baiduLogo );
var graphics = bmp.getGraphics();
//创建刷子
var brush = gdip.solidBrush(0xFFFF0000);
//创建FontFamily 
var family = gdip.family("宋体");
//创建stringFormat 
var strformat = gdip.stringformat ( ); 
//设置样式
strformat.align = 0/*_GdipStringAlignmentNear*/;
//创建Font
var curFont = family.createFont(  150,2/*_GdipFontStyleItalic*/, 2/*_GdipUnitPixel*/) // 参数一为文字大小
//设置文字抗据齿
graphics.smoothingMode = 4/*_GdipSmoothingModeAntiAlias*/ ;
//消除走样,且边作平滑处理
graphics.textRenderingHint = 3/*_GdipTextRenderingHintAntiAliasGridFit*/;
//设置文字区域
rclayout = gdip.RECTF(); 
rclayout.x = 1500
rclayout.y = 1500
rclayout.width = 5000 //在这里指的是宽度
rclayout.height = 150 //在这里指的是高度
graphics.drawString( "水印     水印     水印"  , curFont
, rclayout, strformat,brush);
//删除所有GDI+对象   
brush.delete()
curFont.delete()
strformat.delete();
family.delete(); 

bmp.save("\img\drawSring.bmp");
process.exploreSelect("\img\drawSring.bmp")

效果如下:

 

posted on 2023-07-10 14:51  周文豪  阅读(328)  评论(0编辑  收藏  举报