delphi整了一个微信对话生成器,免费用

最近有人要我写一个软件,就是模拟微信对话并生成图片,我花了一个星期的时间,总算写成了,界面方面模拟的一个收费软件,功能比他只多不少


界面图


复制效果图


完全同步最新版微信有没有,免费使用

 在这可以下载 https://pan.baidu.com/s/1gfeWCON

今天在这里不想讲技术实现,因为bitmap这个东西在windows下面基本上被玩残玩烂了,玩不出什么花样了

但今天也有一个可讲的东西,是我在flash里面发现的,叫做9切片,后来被android抄袭过去了,叫做 .9图 点九图

这也再次证明了android对flash as3.0的各种抄袭,讲真,我是挺喜欢As3的,有些人各种不喜,那你特么的倒是出一种替代产品啊?说什么flash要运行在虚拟机里面,占资源,易崩溃,不好管理,你特么的,JAVA android哪个不是运行在虚拟机里面?

分析android源代码,as3是一个绕不过去的坎, as3的特效矩阵变换等核心功能,你看在Android里面全抄过去了. canvas bitmap graphics range rect 真是一个又一个熟悉的单词啊,不过也不能怪android, 事实上,这些GUI方面的东西,是由windows发明的

画布 DC, 句柄  设备, 场景 位图, 都是Windows下的,被各种语言所包装,现在流传到android上,所以一点不新鲜.

现在回到九切片上来,当时在FLASH中看到,一直不得其解,不知道哪里会用到这功能, 前不久在android中也看到了,在开发微信对话生成器的时候,我才明白了,对话有一个背景,你要拉宽拉长,又要保证那向面向人头的小箭头不变形,四个角不变形,就要用上.

我不知道九切片这个技术是不是FLASH的人最先发明的,如果是,那真是天才的设计啊,谷哥这帮蠢货,什么都是抄, 不愿意动脑筋设计.


这些图都是固定的大小,如果要实现动态大小,保证重点部位不变,就要用到九切片,但Delphi根本没有这种说法,所以只能自己实现了.

//.9缩放 左上角

WXContenImg.Canvas.CopyRect(Rect(left,top,left + 10,top + 10),bmp2.Canvas,Rect(11,0,21,10));

//顶部拉伸

WXContenImg.Canvas.CopyRect(Rect(left + 10,top,right - 10,top + 10),bmp2.Canvas,Rect(20,0,30,10));

//右上角

WXContenImg.Canvas.CopyRect(Rect(right - 10,top,right,top + 10),bmp2.Canvas,Rect(mainpic.Width - 10 ,0,mainpic.Width,10));

//左下角

WXContenImg.Canvas.CopyRect(Rect(left,bottom - 10 ,left + 10,bottom),bmp2.Canvas,Rect(11 ,mainpic.Height - 10,21,mainpic.Height));

//底部拉伸

WXContenImg.Canvas.CopyRect(Rect(left + 10,bottom - 10,right - 10,bottom),bmp2.Canvas,Rect(20,mainpic.Height -10,30,mainpic.Height)); //右下角

WXContenImg.Canvas.CopyRect(Rect(right - 10,bottom - 10,right,bottom),bmp2.Canvas, Rect(mainpic.Width -10,mainpic.Height - 10 ,mainpic.Width ,mainpic.Height ));

//背景区填充

WXContenImg.Canvas.Brush.Color := $FFFFFF;

//填充色

WXContenImg.Canvas.Pen.Color := RGB(223,223,223);

//边框色

WXContenImg.Canvas.FillRect(Rect(left,top + 10,right,bottom - 10));

// 右侧边框

WXContenImg.Canvas.MoveTo(right-1,top + 10); WXContenImg.Canvas.LineTo(right-1,bottom - 10);

//左侧箭头,Y轴30处开始画

WXContenImg.Canvas.CopyRect(Rect(left - 12,top + 30,left ,top + 52),bmp2.Canvas,Rect(0,28,12,50));

//左侧边框

WXContenImg.Canvas.MoveTo(left - 1,top + 10); WXContenImg.Canvas.LineTo(left - 1,top + 30); WXContenImg.Canvas.MoveTo(left - 1,top + 52); WXContenImg.Canvas.LineTo(left - 1,bottom-10);


通过这些技术,我实现了非常完美的效果,跟正版微信效果一模一样,堪称像素级复制.

你可能感兴趣的:(delphi整了一个微信对话生成器,免费用)