aardio 文档

aardio 范例: 剪贴板图像

//剪贴板图像
import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=637;bottom=450;)
winform.add(
btnRead={cls="button";text="读取剪贴板图像";left=249;top=379;right=404;bottom=419;db=1;dr=1;z=3};
btnWrite={cls="button";text="截屏并写入剪贴板";left=428;top=379;right=598;bottom=419;db=1;dr=1;z=2};
picturebox={cls="plus";left=21;top=16;right=617;bottom=360;db=1;dl=1;dr=1;dt=1;edge=1;repeat="scale";transparent=1;z=1}
)
/*}}*/

import win.clip;
import process.imageView;
import gdip.bitmap;

winform.btnRead.oncommand = function(id,event){
    var hBmp = win.clip.readBitmap()
    if(!hBmp){
        return winform.msgboxErr("剪贴板没有图像");
    }

    //存为图像文件
    com.picture.fromBitmap(hBmp).Save("/clip.jpg")

    //转换为 GDI+ 图像
    var bmp = gdip.bitmap(hBmp);
    winform.picturebox.background = bmp;

    //存为图像文件
    bmp.save("/clip.jpg")

    //存为 16 位 BMP 文件
    var bmp16 = bmp.clone(,,,,0x21005/*_PixelFormat16bppRGB555*/);
    bmp16.save("/16.bmp");

    //预览图像
    process.imageView("/clip.jpg")
}

import gdip.snap;
winform.btnWrite.oncommand = function(id,event){

    //截屏
    var bmp = gdip.snap();

    //显示图像
    winform.picturebox.background = bmp;

    //获取位图句柄
    var hBmp = bmp.copyHandle();

    //写入剪贴板
    win.clip.writeBitmap(
        hBmp, //位图句柄
        true, //让剪贴板接管位图,也就不用再复制,也不用再释放 hBmp 了
        true //清空剪贴板中其他格式数据
    );

    //如果上面的参数 @2 不是 true,就要用下面的代码释放位图
    //::DeleteObject(hBmp);
}

winform.show(); 
win.loopMessage();
Markdown 格式