[Java]產生SVG向量圖形檔-xml圖形檔

SVG圖檔是一種利用xml及css來製作而成的一種向量圖形,放大或縮小均不會改變其品質,不過當圖形複雜到一定程式時,其檔案也會跟著變大很多,能夠設計SVG圖形作品的軟體工具包括Adobe Illustrator以及CorelDRAW等,要能查看svg檔案裡的圖形可以利用browser像是firefox、chrome都可以直接知道此向量圖形的內容。

Wiki SVG

在Java要輸出(產生)SVG檔很簡單,在Apache 套件裡有一個batik可以很簡單的就生成所要的SVG圖檔,只需要把原本在建立圖檔時使用的java.awt.Graphics2D變成使用org.apache.batik.svggen.SVGGraphics2D來繪製圖形就可以了。

產生的結果圖:

ToSVG.png

Read More

[Java]QRCode產生VCard

在行動條碼QRCode的內容上,可以是電話號碼、手機號碼、電子信箱、網址、文字內容等等,如果將這些資訊整合起來時,就產生了VCard,二維條碼式的名片條碼,其實條碼內的資訊還是英文、數字或是文字組合而成,只是利用公制定的規則來組合,在解QRCode時,就會啟動相對應的程式來承接這些資訊。

行動上網聯盟OMIA(Open Mobile Internet Alliace)就負責此規則的制定,DeCode或是EnCode都需依規則來處理,規範的內容可以由行動上網聯盟下載區取得,選寫此文時規範版本為3.1

QRcode產生器

如上圖,給於所要提供的欄位資訊,就可以產生需要的QRCode,欄位可以包含姓名、電話、手機、公司電話、公司傳真、公司名稱、EMail、網址、經緯度及地址等等,詳細的用法請參考行動上網聯盟所制定的規範書。

Read More

[Java]如何產生Qrocde二維條碼?

QRCode二維條碼,是Quick Response Code縮寫,來自日本的國際二維條碼標準,是在1994年由日本Denso-Wave公司所發明的,此公司並保有版權但並不行使版權,所以在使用QRCode上並沒有版權上的問題。QRCode的應用像是購物消費、資料查詢、名片交換等等,在日本使用上是十分常見的,而台灣在近幾年也開始流行了起來。

更詳細的QRCode介紹可以參考Wiki QR碼或是 行動條碼 / 二維碼 / Mobile Barcode / QRCode

要利用Java來產生QRCode可以使用swetake所開放出來的原始碼http://www.swetake.com/qr/index-e.html,有php、ruby及Java等版本,下載點qrcode_java0.50beta10.tar.gz ,下載後解壓縮,可以直接把lib目錄下的QRcode.jar直接引用到程式classpath裡就可以了,或著把所有src目錄裡的java檔copy到專案source目錄裡也可。

qrcode壓縮檔

Eclipse的配置如下圖

Eclipse內的配置圖

Read More

[Java]檔案整理工具-照片整理

有時照片從相機複製下來後懶的整理,時間一久就越來越不好查看到底是在何時拍的,這時候就可以利用這個程式來做分類整理,主要是利用遞迴的方法一直向指定目錄下的每一層找尋圖片檔,再複製至以年月為目錄的分類資料夾。

程式的作法大概是先取得目錄列表,再判斷每一個檔案是目錄或是檔案,如果是檔案,檢查是否為jpg檔,如果是檔案,則取得其修改日期的年月,建立存放目錄的年月目錄資料夾,並複製檔案至此資料夾,如果是目錄,則迴丟至此function,製作遞迴效果。

ImgFilter.png

Read More

[Java]SiteMap Creater-簡單的SiteMap建立程式

SiteMapCreater主要的功能在自動產生SiteMap.xml,只需要在資料庫表格裡建立所要產生的SiteMap網址等資訊就可以執行它來自動產生需要的SiteMap而提交給Google或yahoo等搜尋引擎。

這個程式主要是獨立作業的,可以利用windows或是linux的排程來執行jar run就可以了,這樣子可以減少對伺服器的負擔。

程式的作法是從資料庫取得資料,再把資料加上xml需要的字串,然後最後輸出成檔案就可以了,中間有些需要注意的地方,像是筆數不可太多,此程式設定4000筆會換一個檔案名稱,還有檔案也不可超過太大,8mb以下或更小。

執行後會得到以下檔案,一個index的Sitemap.xml及實際的內容的Info0.xml,另外還需要一個xsl來當讀取樣版的準則,向搜尋引擎只需要提交Sitemap.xml這個檔案就可以了,程式還會自動把所有檔案變成一個zip檔,google可以提交zip檔案做為SiteMap,不過此部份並未成功,有興趣的朋友可以再加以改進。

SiteMap1.png

Read More