查看: 2350|回复: 9

[已经解决] 求旋转bitmap的方法

  [复制链接]

老黄鸡

梦石
4
星屑
45753
在线时间
7953 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2011-10-9 22:50:31 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

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

×
本帖最后由 fux2 于 2011-10-9 22:51 编辑

只要可以90度270度旋转就够了。
因为我要做的是从一张杂乱的图之中抽出一部分描到新bitmap上,就像拼图一样。
但拼图的一块是被旋转了90度的,于是需要旋转回来。
于是效果就是从一张bitmap中取某rect范围的图像旋转之后描入或保存为新位图。
在此拜谢。
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
梦石
0
星屑
1580
在线时间
1564 小时
注册时间
2008-7-30
回帖
4207

贵宾

发表于 2011-10-9 23:25:58 | 显示全部楼层
get_pixel()
set_pixel()
能够举一反三吧?

See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复

使用道具 举报

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
回帖
6005

烫烫烫开拓者

发表于 2011-10-9 23:59:47 | 显示全部楼层
用Sprite拼吧
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45753
在线时间
7953 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

 楼主| 发表于 2011-10-10 00:50:39 | 显示全部楼层
DeathKing 发表于 2011-10-9 23:25
get_pixel()
set_pixel()
能够举一反三吧?

那样效率很低的吧囧,有没有更快的方法呢?
@yangff,这陀图要移动,不可能总要保持两张sprite相对距离吧。那样好蛋疼的。
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

乌有君
乌有君  发表于 2011-10-10 04:42:21
本帖最后由 匿名 于 2011-10-10 04:43 编辑

用动态链接库直接操……咳咳……作内存吧(←凡是RM遇到效率问题的统一大雾解决方案)
回复

使用道具 举报

炎发灼眼的讨伐

梦石
0
星屑
50
在线时间
1707 小时
注册时间
2007-8-4
回帖
894
发表于 2011-10-10 10:55:28 | 显示全部楼层
拼图(切分图片 用blt之类的 (然后旋转精灵(
RMXP&RMVX通用Web化完成- -|||
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45753
在线时间
7953 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

 楼主| 发表于 2011-10-10 12:41:48 | 显示全部楼层
灼眼的夏娜 发表于 2011-10-10 10:55
拼图(切分图片 用blt之类的 (然后旋转精灵(

囧,最后生成的图不可以存为一整张bitmap吗,用sprite拼很蛋疼啊囧.
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

梦石
0
星屑
310
在线时间
953 小时
注册时间
2007-4-25
回帖
798
发表于 2011-10-10 21:21:25 | 显示全部楼层
用这个方法操作内存就行了,剩下的是简单的矩阵转置。
su@rpg.blue:~> repeat 1 fortune
Matz is nice, so we are nice.
回复

使用道具 举报

梦石
0
星屑
50
在线时间
21 小时
注册时间
2011-8-22
回帖
8
发表于 2011-10-10 21:52:08 | 显示全部楼层
本帖最后由 lotsofone 于 2011-10-10 22:16 编辑

另外指定一个viewport,把多个sprite放在这个viewport中,然后移动时就
viewport.ox += 1
viewport.oy += 1
ox增加所有指定这个viewport的sprite就向左移动,oy增加就向上移动。

评分

参与人数 1星屑 +18 收起 理由
R-零 + 18 没有理由,纯浇水

查看全部评分

回复

使用道具 举报

老黄鸡

梦石
4
星屑
45753
在线时间
7953 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

 楼主| 发表于 2011-10-10 23:55:59 | 显示全部楼层
lotsofone 发表于 2011-10-10 21:52
另外指定一个viewport,把多个sprite放在这个viewport中,然后移动时就
viewport.ox += 1
viewport.oy +=  ...

我目前就用的这种方法,苏大人的方法虽然好但用但新人想出这么个方法很厉害,就认可新人了。
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部