用gdip给图片加水印

小光芒 3月前 374


纯属抛砖引玉,各位大佬有更优雅的方法欢迎在楼层交流;

打水印之前:

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=759;bottom=469)
winform.add()
/*}}*/

import gdip;
import gdip.graphics;
import fsys.dlg

printImageText = function(imgBuff,text,x,y,width,heigt,color,fontStyle,family,outPath){
    var img = gdip.image(imgBuff)  

    var graphics = gdip.graphics.fromImage(img)

	//创建刷子
	var brush = gdip.solidBrush(color);
	
	//创建FontFamily 
	var family = gdip.family(family);
	
	//创建stringFormat 
	var strformat = gdip.stringformat ( ); 
	
	//设置样式
	strformat.align = 0/*_GdipStringAlignmentNear*/;
	
	//创建Font
	var curFont = family.createFont(  15,fontStyle, 2/*_GdipUnitPixel*/)
	
	
    //设置文字区域
    rclayout = gdip.RECTF(img);
    rclayout.x = x
    rclayout.y = y
    rclayout.right = width//在这里指的是宽度
    rclayout.bottom = heigt //在这里指的是高度
        
    graphics.drawString( text, curFont, rclayout, strformat,brush);

    //删除所有GDI+对象  
   brush.delete()
	curFont.delete()
	strformat.delete();
	family.delete(); 
    img.save(outPath);
    img.dispose();
}


winform.show();



var path = fsys.dlg.save("*.jpg|*.jpg|*.jpeg|*.jpeg|*.jfif|*.jfif|*.png|*.png||",,,winform)	
	if(path){

		printImageText("C:\Users\XZ\Desktop\1.png","Hellow world! 测试样式",150,300,100,100,0xFF0089E4,3,"宋体",path)

	}

win.loopMessage();


运行时会弹出选择文件位置的框,填一下文件名就好;

最新回复 (3)
  • 光庆 3月前
    1 2

    用 godking.paint 库写一段代码试试:

    import win.ui;
    /*DSG{{*/
    var winform = win.form(text="aardio form";right=759;bottom=469)
    winform.add()
    /*}}*/
    winform.show();
    import fsys.dlg
    var path = fsys.dlg.save("*.jpg|*.jpg|*.jpeg|*.jpeg|*.jfif|*.jfif|*.png|*.png",,,winform);
    if(path){
    	import godking.paint;
    	var p = godking.paint.fromBitmap("C:\Users\Administrator\Desktop\1716733202.jpg");
    	p.drawText(150,300,,,"Hellow world! 测试样式",::LOGFONT(name="宋体";h=15;color=0xFF0089E4;italic=1;bold=1;),0,0,0);
    	p.saveToFlie(path,100/*JPG质量*/);
    	p.close();
    }
    win.loopMessage();


  • 小光芒 3月前
    0 3
    光庆 用 godking.paint 库写一段代码试试:import win.ui; /*DSG{{*/ var winform =&nbs ...
    秒呀
  • 瞌睡蟲子 3月前
    1 4

    ffmpeg 添加水印 ffmpeg -i input.jpg -vf "drawtext=text='Watermark Text':fontsize=24:fontcolor=white:x=10:y=10" -codec:a copy output.jpg

返回