制作GIF录制工具遇到的问题

未解决  未打赏  
Admin Admin  悬赏: 100 金币
发布:2018-05-07 23:11:19 分类:问答
因为soImage比较大,所以想用标准库的com.picture.snap()来抓屏合成gif,但发现抓到的图片像素丢失严重,特别是抓aardio的IDE里的代码时,或者抓网页上的内容时,发现文字的笔画丢失太严重了,甚至会大片大片的字母丢失.
问题:
1.怎么解决com.picture.snap()抓屏失真的问题?
2.com.picture.snap()抓屏怎么在内存中合成GIF动画图片然后写出到本地文件?
3.在内存中合成GIF动画后怎么写入到剪贴板?

下面是源码,发给大家研究研究:
import win.ui;
/*DSG{{*/
var winform = win.form(text="GIF录制器";right=636;bottom=233;bgcolor=16777215;border="none";parent=...)
winform.add(
plus={cls="plus";left=401;top=30;right=601;bottom=230;z=7};
plusStart={cls="plus";text="开始";left=220;top=47;right=271;bottom=73;bgcolor=11124224;color=16777215;dr=1;dt=1;notify=1;z=5};
plusStop={cls="plus";text="停止";left=279;top=47;right=330;bottom=73;bgcolor=11124224;color=16777215;dr=1;dt=1;notify=1;z=6};
static={cls="static";left=0;top=0;right=644;bottom=27;aw=1;bgcolor=11124224;color=16777215;dl=1;dr=1;dt=1;z=2};
static2={cls="static";text="帧数:";left=222;top=96;right=333;bottom=114;color=11124224;dr=1;dt=1;transparent=1;z=1};
static3={cls="static";text="GIF录制器";left=8;top=6;right=77;bottom=21;color=16777215;dl=1;dt=1;transparent=1;z=3};
staticBlackbox={cls="static";left=3;top=30;right=203;bottom=230;ah=1;aw=1;bgcolor=0;border=1;db=1;dl=1;dr=1;dt=1;z=4}
)
/*}}*/

import console;
import com.picture;

import win.ui.simpleWindow;
var sfm = win.ui.simpleWindow(winform)

/*自定义标题栏关闭、最大化、最小化按钮样式用法与plus控件的skin函数相同*/
sfm.skin(
background = {
hover = 0xAA00bea9;
active = 0xAA00bea9;
default = 0xFF00bea9;
}
color = {
hover = 0xffffffff;
active = 0xff202020;
default = 0xffffffff;
}
)

//console.varDump(sfm.titlebar)

winform.plusStart.skin(
background = {
hover = 0xEF00bea9;
}
)

winform.plusStop.skin(
background = {
hover = 0xEF00bea9;
}
)

winform.plusStart.oncommand = function(id,event){
//winform.msgbox("开始")
var 左坐标 = winform.left + winform.staticBlackbox.left;
var 顶坐标 = winform.top + winform.staticBlackbox.top;
var 宽度 = winform.staticBlackbox.width;
var 高度 = winform.staticBlackbox.height;
var bmp = com.picture.snap(,左坐标,顶坐标,宽度,高度)//窗口句柄,左坐标,顶坐标,宽,高
//winform.plus.setBackground(bmp,,true)//不清晰
winform.plus.foreground = bmp
}

winform.plusStop.oncommand = function(id,event){
winform.msgbox("停止")
}

//窗体开洞
winform.transparent(128,0);


winform.enableDpiScaling();
winform.show();


win.loopMessage();
return winform;

/*
窗口上所有黑色的都会被透明化,包括外边框/标题/控件文字等,所以要用plus模拟无黑色像素的界面.
*/

  • messias messias    
    Time:2018-05-08 20:38:15
    又不是只能让黑色透明,指定颜色都行。

    其他代码没时间看了,有空再说。[嘻嘻]
[ 发单/接单 ]
换IP投票软件
PC蛋蛋自动挂机投注
新浪微博发微博显示尾巴的方法,比如显示来自iphone 7
百度文库批量自动上传软件
一点资讯app刷阅读量/评论/收藏/订阅功能/手机号注册
定做一个阿迪达斯官网注册器(需要破点击文字式验证码)
定制人人网自动注册/修改资料/采集/私聊软件
酷狗繁星直播网页协yi
YY多功能刷订阅刷粉丝
滑块验证码本地识别
狼人杀POST QQ登录注册 获取金币数量
做个贴吧发发帖的软件懂的来
今日头条账号保存cookie
抖音粉丝软件定做,只要粉丝
百家号自媒体发文软件定制
哔哩哔哩播放量
读取TB某个商品上架时间和相关信息
网易博客软件定制
定制天涯论坛发帖软件
定制今日头条批量自动发私信软件
[ 站内搜索 ]
[ 最近热帖 ]
万能助手 -- 扩展库大全集 13752
用aardio创建web工程图文讲解(1) 12841
电脑编程入门自学:Fiddler https 抓包时提示创建根证书不成功问题彻底解决(https插件dll方式) 11743
aardio绘图演示 11413
通过chrome.dll中间件控制外部chrome浏览器 10125
我常用的aardio技巧 9775
《边学C语言边赚钱——简码编程入门教程》系列集合 9616
aardio使用http或whttp进行get/post请求时经常cookies失效怎么办?__电脑计算机编程入门教程自学 9322
[源码下载]简码视频加密解密播放工具个人版v1.0发布,永久免费开源的知识变现神器 8557
python人工智能爬虫系列:怎么查看python版本_电脑计算机编程入门教程自学 8048
编程入门教程:aardio批量上传文件并显示进度条 7883
aardio调用nodejs的ws模块做一个简单的聊天通信示例 7037
电脑计算机编程入门教程自学:原生JavaScript判断字符是否为A-Za-z英文字母 6908
电脑计算机编程入门教程自学:腾讯tx或极验geetest滑块按住拖动完成拼图验证成功破解思路及源码 6501
乐玩插件AARDIO调用 6087
[ 近期热答 ]
电脑计算机编程入门教程自学:什么是buffer缓冲区? 1
aardio_代码编辑框书签管理器开源 1
aardio_怎么用ide库从代码编辑框中取出指定行的源码? 1
aardio_codepage代码页编码乱码暴力猜解工具 1
aardio内嵌echarts图表添加鼠标事件响应功能 2
aardio列表框listbox_模糊查找和精确查找 1
8亿QQ绑定手机泄露:通过腾讯QQ号查询QQ绑定的手机号码漏洞! 1
carl listviewex调用例子----------源码搬运工 2
Aardio内嵌Electron浏览框怎么正确添加启动参数? 1
Aardio取汉字的字节数或字符数 1
怎么实现mssql图片数据的读写 2
aardio_从49个数字里选六个和值为150的不重复的数字 1
在嵌入wps的时候,多了一个 透明的边框,这个怎么消除它 1
万能助手入门帮助教程:学会科学地管理工作文件 1
Aaardio开发内嵌Electron浏览框放服务器上无法下载组件的解决办法 1