用as函式繪製EMF檔案

2021-05-02 14:08:40 字數 1988 閱讀 5103

--------感謝老大和濤濤(這稱呼只有老大的老大才叫的,這裡放肆一下,嘿嘿),還有良勝。都是牛人的說.

剛要做這個的時候,摸不清下手的點在**,連emf檔案,向量繪圖,都不清楚是啥, as的繪圖函式壓根就沒用過,b/s模式讀取檔案更是啥都不懂。當時想了兩條方向,要麼在瀏覽器這邊轉格式,要麼在服務端那邊轉完再發過來。根據flex的特色,只能讀取jpg,png,gif格式的,

在瀏覽器這邊轉是必定難度大與伺服器端轉換。而且都是最後轉成jpg,所以肯定是在服務端轉完再傳回來更方便。但是當時腦袋瓜子就是灌水了,*****地覺得在客戶端讀取資料,然後呼叫個庫swc進行轉換。更*****地覺得可以用交叉編譯補充as繪圖函式的不足.最後才發現一切都是*****以及不想去正視這個問題(也就是想走捷徑).老一輩說得對,想走捷徑的人往往走得最長.

但是還是總結一下交叉編譯這塊。雖然有彎路走,但是收穫不少。

在這個崎嶇的過程,要感謝兩位一直都幫我的哥們。(jumping,czcomt)都是牛人的說。。。

先是jumping 跟我說了試試開源庫,於是乎我找到了cximage;

後來czcomt跟我說了flash有物理引擎庫,於是乎我找到了交叉編譯,swc,和一系列的flash函式庫.

當時我設想是cximage的解碼庫沒有用到windows api(確實,bmp那塊是沒用到api,但是emf那塊卻用:(),那麼就可以用cygwin+alchemy把那個庫編譯成swc然後套進swf來轉換格式。(感謝jiji哥多次過來指導使用cygwin)。

嗯,當時確實沒去了解cximage解碼庫是否真的沒用到api,直接幹交叉編譯那塊,其實我很好奇adobe那個把 snake遊戲編成swc,原來是用c怎麼做的。確實交叉編譯這塊功能很強大,但是只能用來弄純邏輯的,既然是純邏輯的就沒有必要用交叉了吧,as做純邏輯也是很不錯的。不過當時就是傻,不知道對於這些顯示的東西是非常依賴平台的,既然要跨平台了,就不能用api,也就是要顯示,繪製這些動作都無法靠swc來實現的。

提供一下在這過程找的資料。

cygwin使用:

alchemy 配置:

alchemy呼叫api

cximage官方資料

也就在這個時候,我看了cximage 的解碼庫內的wmf這塊的**後,徹底絕望了,用了幾個win api。也就說前面的努力都是白費了。第三方庫不是乙個走得通的方案,或者應該說第三方非瀏覽器語言是走不通的。平台依賴的問題.不過當時還沒有放棄,就是看了ooo能在linux 上顯示emf,這點倒是讓我喜出望外.看了ooo裡面是用了libemf庫,裡面的函式**windows 的,可以執行在linux,freebsd,unix上,但是不能排除它是用了其他平台的api,要知道涉及到平台的問題,大多數都無法跨的。這樣,非flex的第三庫都是走不通,而flex的第三方庫是還沒有讀取emf的。所以走捷徑是不通,要去一點點地分析資訊,讀取裡面的資料再用as繪圖函式繪製出來。

現在已經初步把乙個emf畫出來,剩下的功夫放在對每個gdi函式的解讀資料,以及函式**上。這部分的總結就等下次把emf,swf,wmf,rgb顏色表,向量繪圖,調色盤之類弄懂後再做。

簡單函式繪製

今天晚上不想寫作業,發揮電教本色。編輯效果 但是不知道為什麼可執行檔案執行的時候按鈕的字顯示不完全 以下為 form1 private sub fanbili click f 2 p text4.text q text5.text clsif g 1 then hge if g 2 then hwa...

用VC OpenGL繪製NURBS曲面

本文回顧了nurbs曲面基本性質,研究了nurbs曲面的繪製,並給出了任意nurbs曲面的繪製 及示例資料。1.nurbs曲面 1.1 nurbs的兩種表示 這裡只介紹nurbs繪製中需要用到的一些基本知識。通常,乙個nurbs曲面f s,t 包含三個要素 控制頂點 x,y,z 節點序列 s,t 和...

用python繪製詞云

開發環境 python2.7 需要的庫 wordcloud,jieba,matplotlib 通過jieba分詞將讀取的文字分成字串,通過wordcloud生成詞云,根據詞頻來顯示特色詞云,讓人更加直觀的明白文字的詞頻最大的文字 在寫 之前我們要引入庫 import sys from wordclo...