一、将图片保存到本地
下面的代码是将图片保存到/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")
效果如下: