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

導(dǎo)出Flex組件為jpg圖片

系統(tǒng) 1676 0
前幾天看了lwz7512的 《 基于servlet導(dǎo)出Flex/Flash界面為圖形文件的簡(jiǎn)單方法 》,今天有時(shí)間就實(shí)踐了一下。

1 .使用BitmapData將flex的某個(gè)UIComponent轉(zhuǎn)換為ByteArray
2 .使用JPGEncoder轉(zhuǎn)換ByteArray。JPGEncoder是corelib( http://code.google.com/p/as3corelib/ ) 的組件。我直接導(dǎo)入corelib.swc卻報(bào)錯(cuò),幸好有源代碼可以直接使用。
3 .使用URLRequest發(fā)送ByteArray到服務(wù)端的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 > ??

這里使用了一個(gè)Bar Chart圖表進(jìn)行實(shí)驗(yàn),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,將會(huì)在web瀏覽器中看到圖片。或者你可以使用saveImage保存圖片到服務(wù)器。

導(dǎo)出Flex組件為jpg圖片


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产香蕉视频 | 国产亚洲欧美日韩v在线 | 色久天 | 狠狠色成人综合首页 | 国产欧美精品一区二区 | 一级黄毛片 | 亚洲精品中文字幕字幕 | 国产精品玖玖玖影院 | 亚洲视频999 | 亚洲特级aaaaaa毛片 | 久草视频首页 | 一级黄色毛片播放 | 亚洲国产人成中文幕一级二级 | 国产精品12 | 欧美国产精品日韩在线 | 中文字幕在线欧美 | 伊人久久综合 | 国产精品视频第一区二区三区 | 91chinese 永久免费 | 四虎影院在线免费观看视频 | 国产精品视频一区二区三区 | 大片国产片日本观看免费视频 | 国产视频一区二 | 一级毛片一级毛片a毛片欧美 | 69精品在线观看 | 久久久久美女 | 四虎免费网站 | 欧美一级a俄罗斯毛片 | 神马午夜剧场 | 四虎精品影院4hutv四虎 | 91手机视频在线 | 在线免费精品视频 | 在线亚洲精品国产波多野结衣 | 青青国产成人久久91网站站 | 色综合久久久久综合体桃花网 | 国产大片91精品免费观看不卡 | 成人国产综合 | 国产成在线人视频免费视频 | 久久亚洲精品一区二区三区浴池 | 男人懂的网站 | 西西大胆实体啪啪色哟哟 |