设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 8079|回复: 20
打印 上一主题 下一主题

[RMVX发布] Bitmap用[图片数字]代替[文字数字]_v1.0

[复制链接]

Lv1.梦旅人

梦石
0
星屑
110
在线时间
953 小时
注册时间
2007-4-25
帖子
805
1
发表于 2011-4-7 21:44:47 | 显示全部楼层
一箭烂YiJL 发表于 2011-4-7 18:42
回复 yangff 的帖子

那么就要API或者自制式仿制一些缩放方法?

这些是 GDI 的函数,需要的是设备上下文(DC)句柄,和 RM 使用的 DirectDraw 处于不同的层面。AlphaBlend 是 GDI 用来处理半透明的函数。

真正的无损缩放需要矢量图,位图无论如何都包含一定的估算性。
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
953 小时
注册时间
2007-4-25
帖子
805
2
发表于 2011-4-8 23:42:34 | 显示全部楼层
回复 一箭烂YiJL 的帖子
矢量图类似RM的窗口图? 中间应该有缩放, 那原理是...(RGE应该知道)

RM 默认应该没有利用任何矢量图,只不过 RM 的窗口确实是分辨率无关的。矢量图是用数学公式表示的分辨率无关的几何图形组合,比如Flash,字体都有矢量的性质。然而,矢量图大多是由纯色或渐变区域组成,他们往往缺乏描绘仿真图像中细微色调的能力,故而仿真图通常都是由位图表示。当然,科技在进步,如今的矢量图相比几十年前应用更加广泛了,特别是在位图纹理映射被引入矢量图标准之后。

转化为RM的Bitmap的方法应该有,但要去掉背景...

RM 的 Bitmap 是 32 位真彩色位图,其中包含了 Alpha 通道,而所谓的透明/半透明背景就是通过这第四个通道进行的 Alpha 合成。GDI 的 Bitmap 也同样支持 32 位位图,理论上在内存中只需要一次简单的 Blit 就能做到转换。当然,如果要用 GDI 的函数,还涉及到通过 DC 操纵实际位图的问题,可以参考这贴:
http://rpg.blue/forum.php?mod=viewthread&tid=162227

很遗憾的是...我这台死机无法安装VS的任何一款工具(2008、2010都失败...)

错误提示是什么?是 VS 的哪种版本?一般做小型开发,不需要所见即所得 GUI 编辑模式的话 Express 版足够了。

能不用vc++做c++的dll吗?

Win32 环境下,通常是不用 MSVC 就用 MinGW32 + GCC。
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
953 小时
注册时间
2007-4-25
帖子
805
3
发表于 2011-4-9 14:30:23 | 显示全部楼层
回复 一箭烂YiJL 的帖子
Flash的字体要无需打散就已经是矢量图?

“打散”不是栅格运算吗?运算前置条件是系统矢量字体,后置条件就是一般的位图了。

我想起了Expression 3

这个没用过,不过微软在这方面的商业软件能和 Adobe 竞争吗?
自由软件中,Inkscape 是很不错的矢量图编辑器;OpenOffice 也有内置的矢量图编辑功能。Adobe Illustrator、Adobe Flash 这些商业软件就更不用说了。

可是经过类似BitBlt的缩放后,会缩放得好么?

这个取决于缩放使用的内插法,一般来说都用的是比较简单的邻近插值,效果一般吧。
还有一些高质量的内值法运算量庞大,除非有硬件加速,否则不适合游戏这样的实时应用程序。

真复杂,已经不知怎么弄了...相信很多的功能都比不上VC++。

VC++ 的优化性能在自己的平台下即便是胜过 MinGW 和 GCC 也不会相差太远。MinGW 是软件兼容层,GCC 是编译器,如果你还需要 IDE,可以在外面套一层 Code::Block。
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
953 小时
注册时间
2007-4-25
帖子
805
4
发表于 2011-4-10 11:33:32 | 显示全部楼层
本帖最后由 苏小脉 于 2011-4-10 11:40 编辑

回复 一箭烂YiJL 的帖子

内插法,长度加一像素,就插进垂直的一列,其他的不变?(相反就删掉?)

邻近内插是取源位图某个最近的点映射到目的地。

那么高质量的是,取得缩放前的比例范围的平均作为那格的色相?

这个勉强符合双线性内插法的思想。
再高级的还有用卷积插值的,用 Lagrange 的二元三点插值的,用二元全区间插值的,都是著名算法,网上有大量材料。

MinGW 和 GCC哪里下载?

http://www.mingw.org/wiki/InstallationHOWTOforMinGW
http://www.mingw.org/wiki/Getting_Started

第一个是手动安装,第二个好像是带了安装程序的。如果嫌麻烦就直接下包含了 GCC 的 Code::Block 吧:
codeblocks-10.05mingw-setup.exe:http://www.codeblocks.org/downloads/26

点评

3次卷积插值……  发表于 2011-4-10 19:05
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
953 小时
注册时间
2007-4-25
帖子
805
5
发表于 2011-4-11 03:46:26 | 显示全部楼层
一箭烂YiJL 发表于 2011-4-10 20:07
回复 苏小脉 的帖子

感谢!!

File -> New -> Project -> Dynamic Link Library,之后配置工程的一些信息,就会产生一个 DLL 的模版,build 之后生成 DLL。

点评

嗯,感谢!(于是以后就有能生成dll了...)  发表于 2011-4-14 21:09
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-4 03:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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