请选择 进入手机版 | 继续访问电脑版

 找回密码
 立即注册
查看: 268|回复: 1

[求助] gdip 绘图输出,怎么才能替换原图

[复制链接]

5

主题

18

帖子

53

积分
交易币
0

编程一段

Rank: 2

发表于 2017-10-1 18:41:22 | 显示全部楼层 |阅读模式
请教一下,这是坛主这段添加水印的代码,为什么输出的文件路径和原图一样的时候(就是替换原图)不管用了,

[aardio] 纯文本查看 复制代码
import gdip

//生成图片文字水印(图片路径或图片数据,水印文字,文字x坐标,文字y坐标,大小,透明度0-255,颜色,样式,字体,输出路径)

printImageText = function(imgBuff,text,x,y,size,alpha,color,fontStyle,family,outPath){
    var img = gdip.image(imgBuff)   
    var graphics = gdip.graphics.fromImage(img)
    
    alpha = tonumber(alpha<<24,2);
    var argb = alpha + tonumber(color,16)
    //创建刷子 颜色
    var re,Brush = gdip.CreateSolidFill(argb);

    //创建字体 
    var family = gdip.family(family);
    
    //创建stringFormat 
    var strformat = gdip.stringformat ( ); 
    //设置对齐广式
    strformat.align = 0/*_GdipStringAlignmentNear*/;

    //创建Font 文字大小,加粗
    var curFont = family.createFont(size,fontStyle, 2/*_GdipUnitPixel*/)

    //设置文字抗据齿
    graphics.textRenderingHint = 3/*_GdipTextRenderingHintAntiAliasGridFit*/;

    //设置文字区域
    rclayout = gdip.RECTF(); 
    rclayout.left = x
    rclayout.top = y
    rclayout.right = img.width-x //在这里指的是宽度
    rclayout.bottom = img.height-y //在这里指的是高度
        
    graphics.drawString( text  , curFont, rclayout, strformat,Brush);
    
    //删除所有GDI+对象  
    gdip.DeleteFont(curFont);
    gdip.DeleteBrush(Brush);
    strformat.delete();
    family.delete(); 
    img.save(outPath);
    img.dispose();
}

printImageText("/233.jpg","aardioaardio文字水印",80,200,40,255,0xFFFFFF,2/*_GdipFontStyleItalic*/,"宋体","/水印.jpg")


<img>
回复

使用道具 举报

14

主题

171

帖子

588

积分
交易币
0

编程三段

Rank: 4

发表于 2017-10-9 14:13:48 | 显示全部楼层
var graphics = gdip.graphics.fromImage(img)
改成
var graphics = img.graphics;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



GMT+8, 2018-2-25 03:48 , Processed in 0.109377 second(s), 25 queries .

© 2001-2011 Powered by Discuz! X3.2.

快速回复 返回顶部 返回列表