查看: 88|回复: 0

[转载发布] 通过 Graphics.freeze 获得截图

[复制链接]
  • TA的每日心情
    开心
    前天 09:55
  • 签到天数: 37 天

    连续签到: 3 天

    [LV.5]常住居民I

    2028

    主题

    32

    回帖

    7260

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    0
    卡币
    5184
    OK点
    16
    积分
    7260
    发表于 同元一千年八月七日(秋) | 显示全部楼层 |阅读模式
    18.1.27
    之前是直接不管三七二十一把位图结构拷贝过去了 所以不能dispose 而F12的时候释放了位图会出错
    现在新建的位图大小和分辨率一致 只把结构中关于数据操作的一部分拷过去了 F12时释放的还是原来新建的位图
    范例还是老的范例 其实只要截图不需要在freeze的时候改位图的话不需要那么麻烦 拿到freeze的位图数据地址就行了
    只要截图的话还可以不需要借助freeze只需要画面刷新
    不过 颓废中 暂置

    17.12.3
    发现还需要修改一处数据 否则freeze的大小仍为640×480
    暂留置不做处理


    此处代码


    这里原理及介绍
    rgss 初始创建了一张窗口大小的位图用于之后的 freeze 操作
    那张位图数据结构地址见脚本
    这脚本就是新建了个$snapshot 然后把结构整个从freeze位图拷到$snapshot了
    每一次 freeze 这张图都是 freeze 时显示的画面
    操作 $snapshot 相当于操作 freeze 时的画面
    你也可以 不需要精灵 改 $snapshot 就等于改了 freeze 时候的画面
    要截图 只要freeze transition(0) 然后保存 $snapshot 就可以了

    因为原生态 截图是不会有什么副作用的 比方遮挡啊全屏啊等等 游戏显示正常 截图必然显示正常
    不过分辨率若不是在 dll 初始就改 freeze 只能 freeze 到初始的分辨率
    下面截图范例





                 本帖来自P1论坛作者SixRC,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=403797  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

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

    本版积分规则

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2024-5-12 21:35 , Processed in 0.075435 second(s), 47 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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