<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>聰明的生活2 &#187; opensource</title>
	<atom:link href="http://blog.yslifes.com/archives/category/opensource/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.yslifes.com</link>
	<description>自己寫java程式的一些筆記</description>
	<lastBuildDate>Tue, 27 Jul 2010 02:13:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<atom:link rel='hub' href='http://blog.yslifes.com/?pushpress=hub'/>
	
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type='text/javascript' src='http://blog.yslifes.com/wp-includes/js/jquery/jquery.js?ver=1.4.2'></script>
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://blog.yslifes.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=cat&id=30_1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
	<item>
		<title>[Java]QRCode產生VCard</title>
		<link>http://blog.yslifes.com/archives/686</link>
		<comments>http://blog.yslifes.com/archives/686#comments</comments>
		<pubDate>Tue, 29 Jun 2010 04:02:00 +0000</pubDate>
		<dc:creator>yku</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[程式]]></category>
		<category><![CDATA[qrcode]]></category>
		<category><![CDATA[vcard]]></category>
		<category><![CDATA[二維條碼]]></category>
		<category><![CDATA[行動條碼]]></category>

		<guid isPermaLink="false">http://blog.yslifes.com/archives/686</guid>
		<description><![CDATA[在行動條碼QRCode的內容上，可以是電話號碼、手機號碼、電子信箱、網址、文字內容等等，如果將這些資訊整合起來時，就產生了VCard，二維條碼式的名片條碼，其實條碼內的資訊還是英文、數字或是文字組合而成，只是利用公制定的規則來組合，在解QRCode時，就會啟動相對應的程式來承接這些資訊。 行動上網聯盟OMIA（Open Mobile Internet Alliace）就負責此規則的制定，DeCode或是EnCode都需依規則來處理，規範的內容可以由行動上網聯盟下載區取得，選寫此文時規範版本為3.1。 如上圖，給於所要提供的欄位資訊，就可以產生需要的QRCode，欄位可以包含姓名、電話、手機、公司電話、公司傳真、公司名稱、EMail、網址、經緯度及地址等等，詳細的用法請參考行動上網聯盟所制定的規範書。 如果使用行動設備（手機等）解碼上圖QRCode可以得到如下圖資訊，直接可以存入通訊錄，省下手動輸入的麻煩。在某些先進的手機或PDA上，還可以直接利用給於的經緯度，透過地圖（Google Map等）直接進行定位、導航等，像商家的名片就可以提供有經緯度的名片，讓客戶更容易找到商家所在地點。 附上此程式，跟上一篇的 [Java]如何產生Qrocde二維條碼?其實是類似的，只是增加了一個JButton ActionListener動作，而做了一些調整。 VCard測試資料內容：（請記得分行） BEGIN:VCARD N:Wang;Eric TEL;CELL:0923-123456 TEL;WORK:Tel:04-2222222 TEL;WORK;FAX:Fax: 04-2223332 ORG:yslifes;工程師 EMAIL:mymail@dddd.ii.com.tw URL:http://blog.yslifes.com END:VCARD 增加的程式碼重點內容： jButton.addActionListener&#40;new java.awt.event.ActionListener&#40;&#41; &#123; &#160; public void actionPerformed&#40;java.awt.event.ActionEvent e&#41; &#123; getJPanel&#40;&#41;.paintMakeQrcode&#40;getJTextArea&#40;&#41;.getText&#40;&#41;.trim&#40;&#41;.length&#40;&#41;==0?null:getJTextArea&#40;&#41;.getText&#40;&#41;&#41;; &#125; &#125; &#41;; 原始碼下載： 使用Android手機解碼QRCode的結果]]></description>
		<wfw:commentRss>http://blog.yslifes.com/archives/686/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Java]如何產生Qrocde二維條碼?</title>
		<link>http://blog.yslifes.com/archives/684</link>
		<comments>http://blog.yslifes.com/archives/684#comments</comments>
		<pubDate>Mon, 28 Jun 2010 01:14:11 +0000</pubDate>
		<dc:creator>yku</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[影像處理]]></category>
		<category><![CDATA[程式]]></category>
		<category><![CDATA[qrcode]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[二維條碼]]></category>
		<category><![CDATA[行動條碼]]></category>

		<guid isPermaLink="false">http://blog.yslifes.com/archives/684</guid>
		<description><![CDATA[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目錄裡也可。 Eclipse的配置如下圖 如何使用swetake來產生QRCode，主要的程式碼如下： 此程式主要在產生QRCode的方塊內容，其中字串str為要放入二維條碼內的資料，如果需要輸出成檔案格式則可使用return後面所保留的程式碼使用ImageIO.write來寫入檔案。 package yku.qrcode; &#160; import java.awt.*; import java.awt.image.*; &#160; //import javax.imageio.*; public class EnCodeTest &#123; public BufferedImage makeqrcode&#40;&#41; &#123; // 設定圖檔寬度 140*140 BufferedImage bi = new BufferedImage&#40;140, 140, BufferedImage.TYPE_INT_RGB&#41;; try &#123; &#160; // Constructor Qrcode Object com.swetake.util.Qrcode testQrcode [...]]]></description>
		<wfw:commentRss>http://blog.yslifes.com/archives/684/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[Java]檔案整理工具-照片整理</title>
		<link>http://blog.yslifes.com/archives/682</link>
		<comments>http://blog.yslifes.com/archives/682#comments</comments>
		<pubDate>Wed, 23 Jun 2010 11:21:09 +0000</pubDate>
		<dc:creator>yku</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Java基礎入門]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[程式]]></category>
		<category><![CDATA[file]]></category>

		<guid isPermaLink="false">http://blog.yslifes.com/archives/682</guid>
		<description><![CDATA[有時照片從相機複製下來後懶的整理，時間一久就越來越不好查看到底是在何時拍的，這時候就可以利用這個程式來做分類整理，主要是利用遞迴的方法一直向指定目錄下的每一層找尋圖片檔，再複製至以年月為目錄的分類資料夾。 程式的作法大概是先取得目錄列表，再判斷每一個檔案是目錄或是檔案，如果是檔案，檢查是否為jpg檔，如果是檔案，則取得其修改日期的年月，建立存放目錄的年月目錄資料夾，並複製檔案至此資料夾，如果是目錄，則迴丟至此function，製作遞迴效果。 原始碼如下： package yku; &#160; public class FilterIMG &#123; // 存放目錄 private static final String DirMove = &#34;d:/mypic&#34;; &#160; public static void main&#40;String args&#91;&#93;&#41; throws java.io.IOException &#123; &#160; // if (args.length == 0) // return; // 來源 String source = &#34;d:/backup/yku/picture&#34;; java.io.File SetDir = new java.io.File&#40;DirMove&#41;; if &#40;!SetDir.exists&#40;&#41;&#41; &#123; SetDir.mkdirs&#40;&#41;; &#125; &#160; java.io.File f [...]]]></description>
		<wfw:commentRss>http://blog.yslifes.com/archives/682/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Java]簡單的Socket Client Server</title>
		<link>http://blog.yslifes.com/archives/652</link>
		<comments>http://blog.yslifes.com/archives/652#comments</comments>
		<pubDate>Thu, 27 May 2010 13:46:21 +0000</pubDate>
		<dc:creator>yku</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[教學]]></category>
		<category><![CDATA[Socket]]></category>
		<category><![CDATA[SocketServer]]></category>

		<guid isPermaLink="false">http://blog.yslifes.com/archives/652</guid>
		<description><![CDATA[這是一個超簡單的Client Server範例，Server部份利用Thread來常駐執行，而Client利用Socket去連接指定的port，送出一個字元組給OutputStream，而Server接收到請求後，使用InputStream來取得資料。 這裡有篇介紹Socket Server的原理Thread應用-Java SocketServer，還有一篇傳送物件Serializable序列化Socket傳送範例，這篇算是比較進階。 程式碼包裝在jar裡，利用二個command視窗，一個執行Server一個執行Client，結果如下： 原始碼及jar下載： 主要的Server端程式碼 &#160; package test; &#160; import java.net.ServerSocket; import java.net.Socket; &#160; public class SocketServer extends java.lang.Thread &#123; &#160; private boolean OutServer = false; private ServerSocket server; private final int ServerPort = 8765;// 要監控的port &#160; public SocketServer&#40;&#41; &#123; try &#123; server = new ServerSocket&#40;ServerPort&#41;; &#160; &#125; catch &#40;java.io.IOException e&#41; &#123; [...]]]></description>
		<wfw:commentRss>http://blog.yslifes.com/archives/652/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[jsp]利用Google Map查詢經緯度</title>
		<link>http://blog.yslifes.com/archives/622</link>
		<comments>http://blog.yslifes.com/archives/622#comments</comments>
		<pubDate>Mon, 26 Apr 2010 13:47:37 +0000</pubDate>
		<dc:creator>yku</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[教學]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://blog.yslifes.com/archives/622</guid>
		<description><![CDATA[如果手上有一堆地址清單想要知道它們的經緯度如何？要怎麼做呢？這裡介紹一個很簡單的方法，利用二個Ajax及Google Map就可以完成，一個要求地址欄位及key值（這其實可以直接全都先輸出成javascript的Array就好了），另一個接收到經緯度資料後回傳給Server做儲存（這也可以直接利用一個TextArea存放，到時再複製起來存放），而Google Map最主要的功能就是把地址轉換成經緯度。 做法及想法如下： 1.建立資料庫Table 需要有一個pk值、地址、經度、緯度及一個記錄是否已取得成功的註記符號，MySQL語法如下： ps.先建立幾筆資料做測試，如下insert 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 CREATE TABLE `test`.`Address` &#40; `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, `zip_name` VARCHAR&#40;45&#41; NOT NULL, `address` VARCHAR&#40;500&#41; NOT NULL, `latitude` VARCHAR&#40;100&#41;, `longitude` VARCHAR&#40;100&#41;, `flg` VARCHAR&#40;1&#41;, PRIMARY KEY &#40;`id`&#41; &#41; ENGINE = InnoDB; &#160; INSERT [...]]]></description>
		<wfw:commentRss>http://blog.yslifes.com/archives/622/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Javascript]AutoComplete自動完成效果</title>
		<link>http://blog.yslifes.com/archives/619</link>
		<comments>http://blog.yslifes.com/archives/619#comments</comments>
		<pubDate>Fri, 23 Apr 2010 23:48:39 +0000</pubDate>
		<dc:creator>yku</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[autocomplete]]></category>

		<guid isPermaLink="false">http://blog.yslifes.com/archives/619</guid>
		<description><![CDATA[之前為了做這AutoComplete效果找了好多資料，不過大都是jQuery的，當然不是不好用，只是在一個頁面載入prototype跟jQeruy就會有些衝突的問題要解決。 效果大概會像下面這樣子 作者的資訊如下： Ajax Autocomplete for Prototype, version 1.0.3 (c) 2008 Tomas Kirda http://www.devbridge.com/projects/autocomplete/ 雖然版本不是很新，不過很完整，只要在自己需要的地方再做些修改就可以了 範例提供如下： 以下提供一個範例，只需開啟AutoComplete.html然後輸入Li ，就會由response.html回傳一個json格式顯示出來。 下載點： 範例畫面 使用方法 載入prototype1.6版本 載入autocomplete.js 載入Autocomplete用的css 建立一個input輸入區 new 一個Autocomplete告知來啟動這個效果 以下是大程式部份 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 &#60;script type=&#34;text/javascript&#34; src=&#34;js/prototype.js&#34; &#62;&#60;/script&#62; &#60;script type=&#34;text/javascript&#34; [...]]]></description>
		<wfw:commentRss>http://blog.yslifes.com/archives/619/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java利用Imagick來ReSize圖片檔-使用JMagick</title>
		<link>http://blog.yslifes.com/archives/396</link>
		<comments>http://blog.yslifes.com/archives/396#comments</comments>
		<pubDate>Fri, 18 Sep 2009 15:06:08 +0000</pubDate>
		<dc:creator>yku</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[影像處理]]></category>
		<category><![CDATA[程式]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[Imagemagick]]></category>
		<category><![CDATA[Jmagick]]></category>

		<guid isPermaLink="false">http://blog.yslifes.com/archives/396</guid>
		<description><![CDATA[程式很簡單 ，只需要在利用command在程式目錄下執行 java -jar ReSizeImage.jar 就可以啦! 預設是縮成以寬為500px基準，如果要改變寬可以利用 java -jar ReSizeImage.jar 數字 縮完的圖會放到程式目錄的resize目錄裡 我Blog都是以500寬為基準，我想應該夠用了吧^^ 程式目錄結構 ReSizeImage.jar jmagick.dll lib/Jmagick.jar 記得要先下載Imagick來安裝才能使用喔 按裝方法如下: JMagick-Java open source free影像壓縮 範例圖檔可以按圖下載，放置於程式目錄 原始碼如下: class Tool整個壓縮以外的實作均在此 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 [...]]]></description>
		<wfw:commentRss>http://blog.yslifes.com/archives/396/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[JAVA]利用Jmagick(ImageMagick)來取得圖片的長寬</title>
		<link>http://blog.yslifes.com/archives/395</link>
		<comments>http://blog.yslifes.com/archives/395#comments</comments>
		<pubDate>Tue, 15 Sep 2009 15:01:31 +0000</pubDate>
		<dc:creator>yku</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[影像處理]]></category>
		<category><![CDATA[Jmagick]]></category>

		<guid isPermaLink="false">http://blog.yslifes.com/archives/395</guid>
		<description><![CDATA[一般Java要取得圖片的長寬size大部份的人，也是最簡單的方法， 就是使用java.awt.image.BufferedImage來取得，不過有時JVM在釋放記憶體來不及時，很容易會出Exception 這時候可以利用Jmagick來取得，它會呼叫外部的ImageMagick 的dll來取得長寬， 以下就是原始碼： import magick.ImageInfo; import magick.MagickException; import magick.MagickImage; import java.awt.Dimension; &#160; public static int[] getImageWH(String source) { &#160;&#160;&#160; if (System.getProperty(&#34;jmagick.systemclassloader&#34;) == null) { &#160;&#160;&#160;&#160;&#160; System.setProperty(&#34;jmagick.systemclassloader&#34;, &#34;no&#34;); &#160;&#160;&#160; } &#160;&#160;&#160; MagickImage image = null; &#160;&#160;&#160; int[] wh = new int[] { -1, -1 }; &#160;&#160;&#160; try { &#160;&#160;&#160;&#160;&#160; ImageInfo info = new ImageInfo(source); [...]]]></description>
		<wfw:commentRss>http://blog.yslifes.com/archives/395/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[程式]利用Random來做亂數密碼</title>
		<link>http://blog.yslifes.com/archives/366</link>
		<comments>http://blog.yslifes.com/archives/366#comments</comments>
		<pubDate>Fri, 21 Aug 2009 12:49:00 +0000</pubDate>
		<dc:creator>yku</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[教學]]></category>

		<guid isPermaLink="false">http://blog.yslifes.com/archives/366</guid>
		<description><![CDATA[規則 一共有七碼，每一碼取得有八成可能是數字，有二成可能是英文 英文則有大小寫之分，一共取一百次^^ 懶的自己想密碼時，可以產生一百個來選一個用 public class RandomPW { &#160; public static void main(String args[]) &#160; { &#160;&#160;&#160; &#160;&#160;&#160; java.util.Random r = new java.util.Random(); &#160;&#160;&#160; int rnd = 0; &#160;&#160;&#160; for(int x = 0 ; x &#60; 100 ; x ++) &#160;&#160;&#160; { &#160;&#160;&#160; for(int i = 0 ; i &#60; 7;i++) &#160;&#160;&#160; { &#160;&#160;&#160;&#160;&#160; if(RandomPW.getNumChar(r)) [...]]]></description>
		<wfw:commentRss>http://blog.yslifes.com/archives/366/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在現有圖片中加亂數碼(文字)</title>
		<link>http://blog.yslifes.com/archives/365</link>
		<comments>http://blog.yslifes.com/archives/365#comments</comments>
		<pubDate>Thu, 20 Aug 2009 13:38:26 +0000</pubDate>
		<dc:creator>yku</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[教學]]></category>

		<guid isPermaLink="false">http://blog.yslifes.com/archives/365</guid>
		<description><![CDATA[構想： 在現有的圖片裡，列如樣版票圖，再加入亂數碼，以區別每個票圖的唯一性。 想法： 取得亂數碼，打開樣版票圖，取得畫筆（Graphics2D），把亂數碼設定到TextLayout圖層上， 計算放置TextLayout圖層的x及y坐標，把圖層draw到樣版圖上，輸出到以亂數碼為名稱之圖檔。 以下是範例程式： 程式大樣分成二大部份，一是圖形的加註文字，二是取得亂數編號的方式。 import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.awt.font.TextLayout; import java.awt.Graphics2D; import java.awt.geom.Rectangle2D; public class CombineRndImg { &#160;&#160;&#160; public void run(String FilePath,String FileName) throws Exception &#160;&#160;&#160; { &#160;&#160;&#160;&#160;&#160; String text = getRnd(8); &#160;&#160;&#160;&#160;&#160; BufferedImage im = ImageIO.read(new java.io.File(FilePath+FileName)); &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Graphics2D g = im.createGraphics(); &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; //去除鋸齒等... &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,&#160; RenderingHints.VALUE_TEXT_ANTIALIAS_ON); &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]]]></description>
		<wfw:commentRss>http://blog.yslifes.com/archives/365/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
