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

Project1

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

無聊的東東 RM_Bar_code RM條碼

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
120
在线时间
68 小时
注册时间
2007-12-16
帖子
75
跳转到指定楼层
1
发表于 2008-12-4 08:19:18 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
同步發表於RMVX原创技术发布区

這東西是RMVX上寫的
不過RMXP也能用

這東西向  照相手機的"行動條碼"

  1. #==============================================================================
  2. # RM_Bar_code By 釣到一隻猴子@_@  (  AAM@_@  )
  3. =begin
  4. #------------------------------------------------------------------------------

  5. 使用方法


  6. rmbc = RM_Bar_code.new(text[, size]) # text 為原文字(Stirng類物件)
  7. # size為條碼大小(size * size的正方形)
  8. # 以原文字生成RM_Bar_code

  9. rmbc = RM_Bar_code.new(bitmap) # bitmap 為條碼影像(Bitmap類物件)
  10. # 以條碼影像生成RM_Bar_code

  11. rmbc.make_bar_code(text[, size])
  12. # 同RM_Bar_code.new(text[, size])  但僅可用於RM_Bar_code類物件

  13. rmbc.load_bar_code(bitmap)
  14. # 同RM_Bar_code.new(bitmap)  但僅可用於RM_Bar_code類物件

  15. rmbc.text
  16. # 取得原文字(Stirng類物件)

  17. rmbc.bitmap
  18. # 取得條碼影像(Bitmap類物件)

  19. #------------------------------------------------------------------------------
  20. =end
  21. #==============================================================================

  22. #==============================================================================
  23. # ■ RM_Bar_code
  24. #------------------------------------------------------------------------------
  25. #  。
  26. #==============================================================================

  27. class RM_Bar_code
  28.   #--------------------------------------------------------------------------
  29.   # ●
  30.   #--------------------------------------------------------------------------
  31.   Black = [0,0,0,255].pack("c*")
  32.   Gray = [128,128,128,255].pack("c*")
  33.   White = [255,255,255,255].pack("c*")
  34.   #--------------------------------------------------------------------------
  35.   # ●
  36.   #--------------------------------------------------------------------------
  37.   def initialize(data, size = 32)
  38.     @bitmap = nil
  39.     @text = ""
  40.     if data.is_a?(String)
  41.       make_bar_code(data, size)
  42.     elsif data.is_a?(Bitmap)
  43.       load_bar_code(data)
  44. #    else
  45.     end
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   # ●
  49.   #--------------------------------------------------------------------------
  50.   def make_bar_code(text, size = 32)
  51.     @text = text
  52.     @bitmap = Bitmap.new(size, size)
  53.     b = @text.unpack("b*")[0]
  54.     b += "2" * (size ** 2 - b.size) if b.size < size ** 2
  55.     b.gsub!("0") {Black}
  56.     b.gsub!("1") {White}
  57.     b.gsub!("2") {Gray}
  58.     @bitmap.save(b)
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # ●
  62.   #--------------------------------------------------------------------------
  63.   def load_bar_code(bitmap)
  64.     @bitmap = bitmap
  65.     b = @bitmap.load
  66.     b.gsub!(Gray) {""}
  67.     b.gsub!(Black) {"0"}
  68.     b.gsub!(White) {"1"}
  69.     @text = [b].pack("b*")
  70.   end
  71.   #--------------------------------------------------------------------------
  72.   # ●
  73.   #--------------------------------------------------------------------------
  74.   def text
  75.     @text
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   # ●
  79.   #--------------------------------------------------------------------------
  80.   def bitmap
  81.     @bitmap
  82.   end
  83. end

  84. #==============================================================================
  85. # ■ Bitmap
  86. #------------------------------------------------------------------------------
  87. #  处理影像的类。
  88. #==============================================================================

  89. class Bitmap
  90.   RtlMoveMemory_pi = Win32API.new('kernel32', 'RtlMoveMemory', 'pii', 'i')
  91.   RtlMoveMemory_ip = Win32API.new('kernel32', 'RtlMoveMemory', 'ipi', 'i')
  92.   #--------------------------------------------------------------------------
  93.   # ●
  94.   #--------------------------------------------------------------------------
  95.   def load
  96.     data = "rgba" * width * height
  97.     RtlMoveMemory_pi.call(data, address, data.length)
  98.     return data
  99.   end
  100.   #--------------------------------------------------------------------------
  101.   # ●
  102.   #--------------------------------------------------------------------------
  103.   def save(str)
  104.     RtlMoveMemory_ip.call(address, str, width * height * 4)
  105.     return self
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # ●
  109.   #--------------------------------------------------------------------------
  110.   def address
  111.     # [[[bitmap.object_id * 2 + 16] + 8] + 16] == 数据的开头
  112.     buffer, ad = "xxxx", object_id * 2 + 16
  113.     RtlMoveMemory_pi.call(buffer, ad, 4)
  114.     ad = buffer.unpack("L")[0] + 8
  115.     RtlMoveMemory_pi.call(buffer, ad, 4)
  116.     ad = buffer.unpack("L")[0] + 16
  117.     RtlMoveMemory_pi.call(buffer, ad, 4)
  118.     return buffer.unpack("L")[0]
  119.   end
  120. end
复制代码

Lv1.梦旅人

逃兵

9
发表于 2008-12-22 21:00:11 | 只看该作者
以下引用danny8376于2008-12-18 22:46:16的发言:
這東西用途應該不怎麼大
(???:其實根本用不到吧)


这么想可不对

嗯,要是把蟋蟀的SAXP的pet包改成可视化的RM条码,或许会很有趣呢。
「If you judge people, you have no time to love them.」—— Mother Teresa
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
120
在线时间
68 小时
注册时间
2007-12-16
帖子
75
8
 楼主| 发表于 2008-12-19 06:46:16 | 只看该作者
以下引用死亡之龙于2008-12-6 13:28:32的发言:

~~~这个是什么东西吖?~~~~用在那里~~~都不说的


我也不知

看你怎用吧= =


這東西用途應該不怎麼大
(???:其實根本用不到吧)
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-9-22
帖子
474
7
发表于 2008-12-6 21:28:32 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
5 小时
注册时间
2008-9-7
帖子
76
6
发表于 2008-12-6 19:07:23 | 只看该作者
我也想知道这个是怎么用的。。。。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-11-17
帖子
23
5
发表于 2008-12-6 07:47:18 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

敌敌畏

梦石
0
星屑
80
在线时间
52 小时
注册时间
2008-5-12
帖子
1748
4
发表于 2008-12-5 06:29:23 | 只看该作者
以下引用yangff于2008-12-4 21:38:02的发言:

2维码?

嗯,正确,手机能识别的2d嘛,很有趣的工具hoho
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

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

烫烫烫开拓者

3
发表于 2008-12-5 05:38:02 | 只看该作者
2维码?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2008-1-3
帖子
1312
2
发表于 2008-12-5 04:54:10 | 只看该作者
还是没明白这东西要用在哪个场合
专业潜水员+资深养手党
问我为什么万年不换头像?
存在感已经够稀薄了,再换个头像谁还记得你!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 10:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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