亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

導出Flex組件為jpg圖片

系統 1892 0
前幾天看了lwz7512的 《 基于servlet導出Flex/Flash界面為圖形文件的簡單方法 》,今天有時間就實踐了一下。

1 .使用BitmapData將flex的某個UIComponent轉換為ByteArray
2 .使用JPGEncoder轉換ByteArray。JPGEncoder是corelib( http://code.google.com/p/as3corelib/ ) 的組件。我直接導入corelib.swc卻報錯,幸好有源代碼可以直接使用。
3 .使用URLRequest發送ByteArray到服務端的java servlet
4 .在servlet中使用ImageIO保存圖片或者輸出到response

下面是具體代碼

actionscript 代碼
?
  1. < mx:Application ???
  2. ???? xmlns:mx = "http://www.adobe.com/2006/mxml" ???
  3. ???? layout = "absolute" > ??
  4. ??
  5. ???? < mx:Script > ??
  6. ????????[CDATA[??
  7. ????????????import?mx.controls.Alert;??
  8. ????????????import?mx.core.UIComponent;??
  9. ????????????import?mx.collections.ArrayCollection;??
  10. ????????????import?com.adobe.images.JPGEncoder;??
  11. ??????????????
  12. ????????????[Bindable]??
  13. ????????????public?var? expenses:ArrayCollection ?=? new ?ArrayCollection(??
  14. ????????????????[??
  15. ????????????????????{Month:"Jan",?Profit:2000,?Expenses:1500},??
  16. ????????????????????{Month:"Feb",?Profit:1000,?Expenses:200},??
  17. ????????????????????{Month:"Mar",?Profit:1500,?Expenses:500}??
  18. ????????????????]??
  19. ????????????);??
  20. ??????????????
  21. ????????????public?function?getJPGByteArray(target:UIComponent):ByteArray?{??
  22. ????????????????var?bitmapData?:? BitmapData ?=? new ?BitmapData(target.width,?target.height);??
  23. ????????????????bitmapData.draw(target);???
  24. ??????????????????
  25. ????????????????var?jpg?:? JPGEncoder ?=? new ?JPGEncoder();??
  26. ????????????????var?jpgByteArray?:? ByteArray ?=? jpg .encode(bitmapData);??
  27. ????????????????return?jpgByteArray;??
  28. ????????????}??
  29. ??????????????
  30. ????????????public?function?sendImageByte(target:UIComponent):void?{??
  31. ????????????????var? request:URLRequest ?=? new ?URLRequest("myImage");??
  32. ???????????????? request.contentType ?=? 'applicatoin/octet-stream' ;??
  33. ???????????????? request.data ?=? getJPGByteArray (target);??
  34. ???????????????? request.method ?=? URLRequestMethod .POST;??
  35. ????????????????navigateToURL(request,?"_blank");??
  36. ????????????}??
  37. ????????]]??
  38. ???? </ mx:Script > ??
  39. ??
  40. ???? < mx:Panel ? id = "chartPanel" ? title = "Bar?Chart" ? width = "300" ? height = "400" > ??
  41. ????? < mx:BarChart ? id = "myChart" ? dataProvider = "{expenses}" ? width = "100%" ? height = "100%" > ??
  42. ???????? < mx:verticalAxis > ??
  43. ??????????? < mx:CategoryAxis ???
  44. ???????????????? dataProvider = "{expenses}" ???
  45. ???????????????? categoryField = "Month" ??
  46. ??????????? /> ??
  47. ???????? </ mx:verticalAxis > ??
  48. ???????? < mx:series > ??
  49. ??????????? < mx:BarSeries ???
  50. ???????????????? yField = "Month" ???
  51. ???????????????? xField = "Profit" ???
  52. ???????????????? displayName = "Profit" ??
  53. ??????????? /> ??
  54. ??????????? < mx:BarSeries ???
  55. ???????????????? yField = "Month" ???
  56. ???????????????? xField = "Expenses" ???
  57. ???????????????? displayName = "Expenses" ??
  58. ??????????? /> ??
  59. ???????? </ mx:series > ??
  60. ????? </ mx:BarChart > ??
  61. ????? < mx:Legend ? dataProvider = "{myChart}" /> ??
  62. ????? < mx:Button ? label = "Get?Chart?Image" ? click = "sendImageByte(myChart)" /> ??
  63. ????? < mx:Button ? label = "Get?Panel?Image" ? click = "sendImageByte(chartPanel)" /> ??
  64. ???? </ mx:Panel > ??
  65. ??????
  66. </ mx:Application > ??

這里使用了一個Bar Chart圖表進行實驗,URLRequest的myImage是我的java servlet

java 代碼
?
  1. import ?java.awt.image.BufferedImage;??
  2. import ?javax.imageio.ImageIO;??
  3. import ?org.apache.commons.io.IOUtils;??
  4. ??
  5. public ? class ?ImageServlet? extends ?HttpServlet?{??
  6. ??????
  7. ???? @Override ??
  8. ???? protected ? void ?doGet(HttpServletRequest?arg0,?HttpServletResponse?arg1)? throws ?ServletException,?IOException?{??
  9. ????????doService(arg0,?arg1);??
  10. ????}??
  11. ??
  12. ???? @Override ??
  13. ???? protected ? void ?doPost(HttpServletRequest?arg0,?HttpServletResponse?arg1)? throws ?ServletException,?IOException?{??
  14. ????????doService(arg0,?arg1);??
  15. ????}??
  16. ??
  17. ???? private ? void ?doService(HttpServletRequest?request,?HttpServletResponse?response)? throws ?IOException?{??
  18. ???????? //saveImage(request,?response); ??
  19. ????????printImage(request,?response);??
  20. ????}??
  21. ??????
  22. ???? private ? void ?saveImage(HttpServletRequest?request,?HttpServletResponse?response)? throws ?IOException??{??
  23. ????????String?fileName?=? "D://" ?+?System.currentTimeMillis()?+? ".jpg" ;??
  24. ????????BufferedImage?bufferedImage?=?ImageIO.read(request.getInputStream());??
  25. ???????? if ?(bufferedImage?!=? null )?{??
  26. ????????????ImageIO.write(bufferedImage,? "jpeg" ,? new ?File(fileName));??
  27. ????????}??
  28. ????}??
  29. ??????
  30. ???? private ? void ?printImage(HttpServletRequest?request,?HttpServletResponse?response)? throws ?IOException??{??
  31. ????????response.setContentType( "image/jpeg" );??
  32. ????????response.setHeader( "Content-Length:" ,?String.valueOf(request.getInputStream().available()));??
  33. ??????????
  34. ????????ServletOutputStream?sos?=?response.getOutputStream();??
  35. ????????IOUtils.copy(request.getInputStream(),?sos);??
  36. ????????sos.flush();??
  37. ????????sos.close();??
  38. ????}??
  39. }??

printImage將圖形輸出到response,將會在web瀏覽器中看到圖片?;蛘吣憧梢允褂胹aveImage保存圖片到服務器。

導出Flex組件為jpg圖片


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲国产成人精彩精品 | 久草热在线 | 狠狠躁夜夜躁人人爽天天miya | 青娱乐91 | 五月婷综合 | 国产精品久久久久国产精品三级 | 免费一级特黄欧美大片久久网 | 久久影视在线观看 | 国产精品国色综合久久 | 欧美久久xxxxxx影院 | 欧美日韩视频在线成人 | 亚洲天天在线日亚洲洲精 | 4虎影院在线观看 | 精品一区二区三区在线成人 | 香蕉久久综合精品首页 | 2019年国产高清情侣视频 | 色在线视频 | 国产成人精品日本 | 男人的天堂视频 | 久久新网址 | 伊人成人在线观看 | 伊人色强在线网 | 欧美aa一级片 | 色老成人精品视频在线观看 | 久久国产精品免费专区 | 国产91嫩草精品 | 久久久国产一区二区三区 | 久久久99精品久久久久久 | 91久久| 老湿机永久体验 | 人人爽天天碰天天躁夜夜躁 | 国产精品亚洲欧美日韩久久 | 91精品乱码一区二区三区 | 欧美一级毛片高清毛片 | 毛片免费在线观看 | 奇米麻豆 | 亚洲免费人成在线视频观看 | 中文字幕在线观看免费视频 | 四虎国产精品永久地址49 | 欧美一级艳片视频免费观看 | 欧美黑人巨大肥婆性视频 |