KeyFansClub

首页 » - 特色讨论区 - » 键社茶餐厅 » [程序已出][攒RP][ASCII ART][不同于一般]观玲的一张[注意:大贴]
YWT - 2005/1/26 1:03:00














































Schala - 2005/1/26 1:29:00
呃...感觉和击破传里那三个很像...
MingHyuk - 2005/1/26 5:59:00
传说中的马赛克...- -b... ...截张图 -0-
kof9708 - 2005/1/26 12:35:00
呵,这个有意思,收下了........
悠久ノ風 - 2005/1/26 14:50:00
这个,貌似传说中的象素画啊。虽然效果不怎么样..
YWT - 2005/1/26 14:56:00
以下引用withwind在2005-1-26 14:50:13的发言:
这个,貌似传说中的象素画啊。虽然效果不怎么样..

呵呵,因为考虑到论坛的宽度,图像的分辨率比较小了。
为了做这个写了个程序.....在完善一下把它传上来:)
卫江 - 2005/1/26 15:53:00
还不错,可惜不像啊
air·one - 2005/1/26 16:15:00
传说中的......没词了^o^

截图用意,me也想试试了....等啊等
hino - 2005/1/26 16:24:00
這個。。太強了= =||||||
期待HAKU WANG樣的程序~~
mlhmwh45 - 2005/1/26 17:15:00
怎么收下??
悠久ノ風 - 2005/1/26 17:38:00
YWT的程序..大概能猜到一些,毕竟我们自己也做过让一排文字颜色渐变的程序。总之很期待就是了~用来灌水一定很有趣。
亡灵之猫 - 2005/1/27 0:45:00
技术内幕猜想:
1.截取位图的点
  方法1:建立结构体变量,直接读取BMP文件(代码比较繁冗)
  方法2:直接用API把图读入DC中取点(不超过20行代码,极其简单)
2.把点颜色转回16进制RGB代码
3.按照UBB代码写入txt文档
(方法一:已在Delphi中通过验证)
(方法二:已在VB中通过验证)

以上纯粹瞎猜,楼主不要打我...........(抱头逃窜中..)
valleyforge - 2005/1/27 0:49:00
我也是这么想的...-v-
不过我暂时只会方法1...-v-||||
王二 - 2005/1/27 0:55:00
嗯?=v=
好像很有意思的说~

等会翻译的闲暇之余试试看……
YWT - 2005/1/27 1:11:00
PixART, 图像像素文字转换工具
Version 1.0

编程语言Delphi
思路:
用TImage加载图片,转换时创建TPicture,用Bitmap.Canvas.Draw()将TImage的图像作为位图复制至TPicture.Bitmap,再用一个循环就行了,Pixel[x, y]读取像素颜色,转换为16进制RGB,使用字符串处理得到结果.

使用方法:
文件->打开图片文件,文件->转换设置,文件->开始转换

注:颜色标记格式的使用
%color%将在转换中被替换成颜色描述(#RRGGBB),%text%将被替换成所定义的文字
如:
UBB:[NoCode]%text%[/NoCode]
HTML:<Font Color=%color%>%text%</Font>

使用GraphicEx Library,支持如下格式:
*.png;*.psp;*.cut;*.pcd;*.pic;*.cel;*.pbm;*.pgm;*.ppm;*.pdd;*.psd;*.bw;*.rgb;*.rgba;*.sgi;
*.rla;*.rpf;*.scr;*.pcc;*.pcx;*.eps;*.fax;*.tif;*.tiff;*.icb;*.tga;*.vda;*.vst;*.win;*.dib;
*.rle;*.jpeg;*.jpe;*.jpg;*.jfif;*.emf;*.wmf;*.ico;*.bmp;*.png;*.jpeg;*.jpg;*.dcx;*.eps;*.pcc;
*.pcx;*.afi;*.vst;*.tga;*.tiff;*.tif;*.pbm;*.pgm;*.ppm;*.jpg;*.jpeg;*.bmp;*.ico;*.emf;*.wmf

下载:http://pickup.mofile.com/9899883857710368
亡灵之猫 - 2005/1/27 1:22:00
楼主真有灵感哈
Pixel[x, y]在dcu中的原型就是GetPixel()哦

YWT大概今后将成为KFC灌水者心中的偶像
YWT - 2005/1/27 1:24:00
hehe
嗯,是的....
不过也挺简单的。
不愿意自己受累可以做程序完成嘛,呵呵

:)
valleyforge - 2005/1/27 1:33:00
这个完全没想过要手动呢...直接就是想写个程序的...=v=||
YWT - 2005/1/27 1:36:00
对了,Delphi有个十分恶心的问题:Delphi的TColor的格式是0x00BBGGRR,转换成字符串后还要再重组一下。第一次搞成的时候,图片的颜色莫名其妙的,因为直接用的是BBGGRR.....

-_-||
valleyforge - 2005/1/27 1:43:00
typedef struct RGBQUAD
{
  unsigned char    rgbBlue;
  unsigned char    rgbGreen;
  unsigned char    rgbRed;
  unsigned char    rgbReserved;
}

确实就是BGR没错...-v-b
亡灵之猫 - 2005/1/27 1:50:00
我认为最好的方法是直接接受int值
建立楼上所述的那样一个结构体变量
用一个int指针指向结构体变量接受返回的int
很方便就读出RGB值
稍作转换就出16进制代码了
王二 - 2005/1/27 2:55:00
嗯,花了一小时做出来了=v=
环境:C++.NET
拿春原作了实验(可哀相な春原…)
原图:(128 X 128)

[IMG=upload/KFCFile2761_e15.png]上传文件2761[/IMG]

KFC一行可以容纳默认字体的字47个,一号字体52个

下面第一幅是一号字体的,因为字体缩小,行距没有缩小,所以横向2个点取1个(最后12个像素,即6个字砍掉),纵向4个点取1个。

第二幅是一开始做的,默认字体,横向3个点取一个,纵向也是3个点取一个。

其实VC下面COLORREF的组成方式也是:蓝绿红
0x00 00 00 00
    蓝 绿 红

我的调整方法是:

value=color & 0x0F,再将value转换成字符填入相应字符数组
然后color=color>>4

重复6次上述步骤即可





































————————————————————————————










































air·one - 2005/1/27 4:16:00
凌晨悄悄得收物
sorabeam~ - 2005/1/27 4:35:00
通宵修理机器,终于能上网了……值
牧野みみも - 2005/1/27 7:07:00
-_____-
这……
Prz - 2005/1/27 7:51:00
以下引用YWT在2005-1-27 1:36:49的发言:
对了,Delphi有个十分恶心的问题:Delphi的TColor的格式是0x00BBGGRR,转换成字符串后还要再重组一下。第一次搞成的时候,图片的颜色莫名其妙的,因为直接用的是BBGGRR.....

-_-||


用Delphi 8 或者2005的.NET库,每个象素都可以直接用.Red .Green .Blue读写

还有,如果获得每一个字的大小,然后对同样区域的象素颜色作平均的话,应该可以得到更精确的颜色表达。
YWT - 2005/1/27 13:53:00
一直用的是Delphi 7。虽然知道Delphi 2005更好,但是因为有以前Delphi 5的程序往Delphi 6上转移时的痛苦经历.....

不过也准备试一下,毕竟是历史潮流,呵呵
Prz - 2005/1/27 14:00:00
Delphi 2005 转移Delphi 7的VCL程序 基本直接打开,完全不用修改...
YWT - 2005/1/27 14:17:00
以下引用Misha在2005-1-27 14:00:46的发言:
Delphi 2005 转移Delphi 7的VCL程序 基本直接打开,完全不用修改...

外部类库......
很严重的问题.....
PS:正在下Delphi 2005
^_^
黄昏屋顶の猫 - 2005/1/27 16:07:00
呼....看来程序是万能的.......||||
真是个伟大的东西...(意味不明)
12
查看完整版本: [程序已出][攒RP][ASCII ART][不同于一般]观玲的一张[注意:大贴]