问:像PS里的素描、浮雕、水彩等 一些高级滤镜效果如何制作,用在JPG上面的。求救了,各位大虾出手相助一下吧....

终极讨厌答:有这样的类包,但主要都是通过颜色矩阵滤镜和回旋滤镜结合实现的。
 

请先去http://www.flashtc.com/article.asp?articleid=1890 下载Flash8 滤镜下载完毕后解压,把那个“fl”文件夹复制到这里:C:\Program Files\Macromedia\Flash 8\zh_cn\First Run\Classes,然后就可以用as来调用了。我做了一些练习,熟悉了一下,效果真不错,挺丰富。

这是代码,留着自己查看,有兴趣的朋友可以看看,先别头晕,我是把很多滤镜都写在一起了,其实每个滤镜都是很短的代码。

 

  1. //主语句  
  2.  
  3. import fl.awt.img.filter.*;  
  4.  
  5. import flash.display.BitmapData;  
  6.  
  7. //各种滤镜的写法:  
  8.  
  9. /*浮雕滤镜的写法,ReliefFilter(浮雕方向,浮雕强度)  
  10.  
  11. var lvjing = new ReliefFilter(1, 10);  
  12.  
  13. var filterArray:Array = new Array();  
  14.  
  15. filterArray.push(lvjing);  
  16.  
  17. pic.filters = filterArray*/  
  18.  
  19. /*通道选择滤镜的写法,ChannelChangeFilter(1红|2绿 |4兰, 是否平分通道)8代表通道alpha  
  20.  
  21. var lvjing = new ChannelChangeFilter(1| 2 | 8, false);  
  22.  
  23. var filterArray:Array = new Array();  
  24.  
  25. filterArray.push(lvjing);  
  26.  
  27. pic.filters = filterArray;*/  
  28.  
  29. /*  
  30.  
  31. //布纹滤镜的写法,new ClothFilter(myBitmapData,布纹强度);  
  32.  
  33. //条件:需要创建BitmapData,最好大于等于图像。  
  34.  
  35. stop()  
  36.  
  37. var n = 0;  
  38.  
  39. onEnterFrame = function () {  
  40.  
  41. n++;  
  42.  
  43. var myBitmapData:BitmapData = new BitmapData(460, 150, true, 0xCCCCCCCC);  
  44.  
  45. var lvjing = new ClothFilter(myBitmapData, n);  
  46.  
  47. var filterArray:Array = new Array();  
  48.  
  49. filterArray.push(lvjing);  
  50.  
  51. pic.filters = filterArray;  
  52.  
  53. if (n>100) {  
  54.  
  55. delete this.onEnterFrame;  
  56.  
  57. }  
  58.  
  59. };  
  60.  
  61. */  
  62.  
  63. /*  
  64.  
  65. //反转颜色的滤镜ReversesFilter();没有参数  
  66.  
  67. var lvjing=new ReversesFilter();  
  68.  
  69. pic.filters=[lvjing]*/  
  70.  
  71. /*  
  72.  
  73. //查找边缘滤镜的写法new SearchEdgeFilter(查找方向,查找强度)  
  74.  
  75. var lvjing = new SearchEdgeFilter(2, 8);  
  76.  
  77. pic.filters = [lvjing];*/  
  78.  
  79. /*  
  80.  
  81. //锐化滤镜new SharpenFilter(锐化强度)  
  82.  
  83. var lvjing = new SharpenFilter(200);  
  84.  
  85. pic.filters = [lvjing];*/  
  86.  
  87. /*  
  88.  
  89. //扩散滤镜,需要BitmapData,new SplattersFilter(myBitmapData, 扩散宽度, 扩散高度)  
  90.  
  91. stop();  
  92.  
  93. scalex = 50;  
  94.  
  95. scaley = 50;  
  96.  
  97. onEnterFrame = function () {  
  98.  
  99. scalex--;  
  100.  
  101. scaley--;  
  102.  
  103. var myBitmapData:BitmapData = new BitmapData(460, 150, true, 0xCCCCCCCC);  
  104.  
  105. var lvjing = new SplattersFilter(myBitmapData, scalex, scaley);  
  106.  
  107. var filterArray:Array = new Array();  
  108.  
  109. filterArray.push(lvjing);  
  110.  
  111. pic.filters = filterArray;  
  112.  
  113. if (scalex == 0) {  
  114.  
  115. delete this.onEnterFrame;  
  116.  
  117. }  
  118.  
  119. };  
  120.  
  121. */  
  122.  
  123. /*  
  124.  
  125. //水彩滤镜new WaterColorFilter(myBitmapData, 水彩宽度, 水彩高度)  
  126.  
  127. stop();  
  128.  
  129. scalex = 50;  
  130.  
  131. scaley = 50;  
  132.  
  133. onEnterFrame = function () {  
  134.  
  135. scalex--;  
  136.  
  137. scaley--;  
  138.  
  139. var myBitmapData:BitmapData = new BitmapData(460, 150, true, 0xCCCCCCCC);  
  140.  
  141. var lvjing = new WaterColorFilter(myBitmapData, scalex, scaley);  
  142.  
  143. var filterArray:Array = new Array();  
  144.  
  145. filterArray.push(lvjing);  
  146.  
  147. pic.filters = filterArray;  
  148.  
  149. if (scalex == 0) {  
  150.  
  151. delete this.onEnterFrame;  
  152.  
  153. }  
  154.  
  155. };*/  
  156.  
  157. /*  
  158.  
  159. //水波滤镜new WaveFilter(myBitmapData, 水波宽度, 水波高度)  
  160.  
  161. stop();  
  162.  
  163. scalex = 50;  
  164.  
  165. scaley = 50;  
  166.  
  167. onEnterFrame = function () {  
  168.  
  169. scalex--;  
  170.  
  171. scaley--;  
  172.  
  173. var myBitmapData:BitmapData = new BitmapData(460, 150, true, 0xCCCCCCCC);  
  174.  
  175. var lvjing = new WaveFilter(myBitmapData, scalex, scaley);  
  176.  
  177. var filterArray:Array = new Array();  
  178.  
  179. filterArray.push(lvjing);  
  180.  
  181. pic.filters = filterArray;  
  182.  
  183. if (scalex == 0) {  
  184.  
  185. delete this.onEnterFrame;  
  186.  
  187. }  
  188.  
  189. };*/  
  190.  
  191. /*  
  192.  
  193. //飓风滤镜new WindFilter(myBitmapData, 风速,是否水平);  
  194.  
  195. stop();  
  196.  
  197. var speed:Number = 50;  
  198.  
  199. var shuiping = false;  
  200.  
  201. onEnterFrame = function () {  
  202.  
  203. speed--;  
  204.  
  205. var myBitmapData:BitmapData = new BitmapData(460, 150, true, 0xCCCCCCCC);  
  206.  
  207. var lvjing = new WindFilter(myBitmapData, speed, shuiping);  
  208.  
  209. var filterArray:Array = new Array();  
  210.  
  211. filterArray.push(lvjing);  
  212.  
  213. pic.filters = filterArray;  
  214.  
  215. if (speed == 0) {  
  216.  
  217. delete this.onEnterFrame;  
  218.  
  219. }  
  220.  
  221. };*/