首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

代码分享及意见征求:任意角度多色渐变填充图形界面解决方案

2012-03-17 
代码分享及意见征求:任意角度多色渐变填充图形界面半月前,回了个关于双色渐变填充矩形的帖(见http://topic

代码分享及意见征求:任意角度多色渐变填充图形界面
半月前,回了个关于双色渐变填充矩形的帖(见http://topic.csdn.net/u/20091030/12/74cc8a21-1b63-4051-818c-d4c871b292f6.html),事后,闲来无事,于是,按那个回帖的思路,写了个任意角度双色渐变填充矩形的函数,感觉不错,比GDI+渐变填充速度快不少,又将其扩展为任意角度多色(ARGB)渐变填充矩形、文字,后来灵机一动,不如把这个由简入繁、由浅入深写的代码放到BLOG中,即可实现代码分享,满足实用要求,又可给初学者一个学习参考,于是先后发布了3篇BLOG文章:

《实现任意角度渐变填充(一) -- 双色渐变填充矩形》
《实现任意角度渐变填充(一) -- 多色渐变填充矩形》
《实现任意角度渐变填充(三) -- 多色渐变填充文字》

  文章写完后,却又发现,其实这些代码完全可以改编扩展为其它任意封闭图形,包括Windows区域的填充,但究竟是写成一个个单独的函数好,还是归并为一个类(例如一个扩展填充功能的TCanvas派生类)好呢?这2种方式各有优缺点,因此拿不定主意,特地在此征求各位的意见,当然,也包括对上述文章中代码的改进意见。

  以下贴上上述文章中的2张界面截图:

4个不同角度多色填充矩形的拼图:

3色和5色填充文字(已消除锯齿):



[解决办法]
写成一个单独的函数,做成DLL比较好~~
[解决办法]
谢谢分享!
[解决办法]
嗯,做成DLL更好,供大伙用..
[解决办法]

[解决办法]

[解决办法]
牛人
[解决办法]
老毛的帖子一定要占位置顶起来
[解决办法]

[解决办法]
向您 学习
[解决办法]
看看
[解决办法]
很好,看过了
[解决办法]
mark
[解决办法]
up
[解决办法]
谢谢 阿发伯!
[解决办法]
顶~
[解决办法]
虽然depphi和vb都不懂,这个一定要支持。。。。。。。
[解决办法]
看看
[解决办法]
支持
[解决办法]

探讨
阿发伯啥时候出书?

[解决办法]
mark+up
[解决办法]
不懂 帮顶下吧!!
[解决办法]
学习下
[解决办法]
顶毛委员!
[解决办法]

[解决办法]
顶了~~~~~~~~
[解决办法]
阿发伯真好
[解决办法]
Mark一下
[解决办法]
我倒是想知道如何能用GDI+实现PS中的角度渐变。
[解决办法]

[解决办法]
dingding!!!!
[解决办法]
UP
[解决办法]
呵呵,学习哦,谢谢发哥
[解决办法]

探讨
引用:
410速度真快啊!


您的帖子,能不顶吗?嘿嘿~~

[解决办法]
顶~~
[解决办法]
一直矩形4个顶点颜色红、蓝、绿、黄 如何填充矩形颜色 使其均匀过度的Graphics中的方法是什么?
[解决办法]
回楼主:
带alpha通道的透明色的渐变色彩的产生方法:

起始色彩为rgbaFrom, 终点色彩为rgbato,中间某个偏移的色彩rgba应该为:
rgbaf.premultiply;
rgbat.premultiply;
假设偏移比例为s(1> s> 0)
r = rf + s * (rt - rf)
g = gf + s * (gt - gf)
b = bf + s * (bt - bf)
a = af + s * (at - af)

rgba.demutiply;

楼主可以用带透明度的色彩试一下,然后和gdi+作一下对比。

支持下楼主的这种共享行为~
[解决办法]
支持下,虽然我对图像这块不懂. 呵呵
[解决办法]
不知道阿发伯有没有图文识别的东东..
[解决办法]
up
[解决办法]
写的不错
[解决办法]
不懂帮顶了。
[解决办法]
学习
[解决办法]
UP
[解决办法]
向大大们学习。
[解决办法]
顶。学习
[解决办法]
探讨
引用:
阿发伯啥时候出书?

p这个建议不错

[解决办法]
学习了
[解决办法]
阿发伯啥时候出书? 

[解决办法]
jf
[解决办法]
围观大牛
[解决办法]
路过顶顶
[解决办法]

[解决办法]
还是建议做成类吧,毕竟这样大家使用起来可以进行维护,调试的时候,发现问题可以查找原因,以后还可以不断扩展...,
呵呵,个人意见
[解决办法]
两个都做比较好
[解决办法]
牛X,,强!
[解决办法]
支持一下,,,虽然我不是懂,,学习
[解决办法]
于:2009-11-20 09:12:57
每天回帖即可获得10分可用分! 

[解决办法]
发兄研究得很深入
------解决方案--------------------


好文章 啊
[解决办法]
来迟了,罚我多接点分!!!
支持原创
[解决办法]
学习
[解决办法]
很好。
[解决办法]
好帖子
[解决办法]
专程来支持阿发伯.
[解决办法]
学习了hardworkhttp://www.爱艺购.com
[解决办法]
支持
[解决办法]

虽然不懂...顶楼主的分享精神.
[解决办法]
牛人!!!顶
[解决办法]

[解决办法]
留脚印 慢慢学
[解决办法]
不太懂
[解决办法]
不错,顶
[解决办法]
真的很好哈
[解决办法]
学习
[解决办法]
ding

热点排行