如何合併兩張圖加淡化效果 For Java

2009年2月4日 尚無評論

最近想可否自動加上一些浮水印的效果
平常很少用程式來進行影像處理,

參考了java合并图片 – Ivan Zhang's 弹丸之地 – CSDNBlog ,發現Java實作還真容易
怪不得Java可以成為目前的主流程式語言之一。

小弟加以調整,把小圖淡化合併於左下角,感覺會有點浮水印的效果,近幾年這種效果蠻討喜的

以下這是原圖,就去網路找最近家中在看的韓劇「愛情殺手吳水晶」的圖片:

用戶插入圖片

然後要合併的,就拿Keroro軍曹來吧,會比較討喜點:

用戶插入圖片

程式如下:

import java.awt.AlphaComposite;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import javax.imageio.ImageIO;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

public class DrawImage{
   public static void main(String[] args) throws Exception{
       InputStream imagein=new FileInputStream(“c:\\test\\a.jpg”);
       InputStream imagein2=new FileInputStream(“d:\\test\\b.gif”);
       BufferedImage image=ImageIO.read(imagein);
       BufferedImage image2=ImageIO.read(imagein2);
       Graphics2D g = image.createGraphics();
       g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
       g.drawImage(image2,image.getWidth()-image2.getWidth(),image.getHeight()-image2.getHeight(),null);
       OutputStream out=new FileOutputStream(“c:\\test\\ok.jpg”);
       JPEGImageEncoder enc=JPEGCodec.createJPEGEncoder(out);
       enc.encode(image);
       imagein.close();
       imagein2.close();
       out.close();
   }
}


合併後如下:

用戶插入圖片

很容易吧,幾行程式就可以有這樣的效果真是不錯!!

以上圖片引用,謝謝不知名網站借來學習!

Categories: JAVA Tags: , ,

新春返鄉出遊-彰化田尾公路花園

2009年1月29日 尚無評論

近幾年的新年假期,我們家人都是返鄉兼出遊
在大年初一早才上路,這樣會塞的機率非常的低

今年目標有點難定,不知哪出遊才好
在台北時都沒啥想法,也可能是天氣陰陰的吧

一到台中,天氣漸漸晴朗,看來今天是一個好天氣呀!!
在二伯家時,老哥就說乾脆就去田尾賞花好了

先前幾年有去彰化溪洲賞花,人多到有點誇張
也是因為道路不夠大條吧,塞車的經驗讓我們難忘

不過管它的,大過年的,就是要去熱鬧熱鬧呀!!
到了田尾才一點多左右,呵~~也是小條路
但沒想到沒塞到什麼,而且很順利的找到停車位呢!!

田尾,又有一個稱號叫公路花園,
原本以為他很溪洲一樣,是一大遍的農田種滿了花,
到了現場才知是一戶一戶賣花的,怪不得叫公路花園

整個田尾村莊好像都是在賣花的,場地有點大,要走一整個村子
所以這裡也推出腳踏車的休閒交通,
不過這裡比較不一樣的是,都是四人、三人居多的腳踏車,後面還有個籃子
可以讓你放置購買的花,還不錯呢!!

用戶插入圖片

在陽光下,花變的更豔麗了

小菊花

小菊花

這裡的花店,所販賣的花真是種類繁多,也都蠻便宜的,想佈置家中的陽台
可以花上一百塊就可以買十盆波斯菊,還有也可以自己種草莓、或是玫瑰花
真是物美價廉。

這裡也有很多名貴的植物,我們有走進一家,裡面的古榕,一盆就要五十萬
呵~看來是走錯地方了,不過老板人很和善的說開放參觀就是想多交朋友啦!!
來到田尾,看起來都是大戶人家,蠻多透天別墅前種滿了花及樹,要不是還有一點
鄉村的氣息,可能還會誤以為到了國外呢!!

這不是人家家啦,是間咖啡廳

這不是人家家啦,是間咖啡廳

庭園造景

庭園造景

這是在盆中的蓮花

這是在盆中的蓮花

美喔~這家是專做庭園造景的

美喔~這家是專做庭園造景的

逛到累了,此時車已經多了起來,整個田尾可以說都塞住了,看來大家都不想放過
這麼好的天氣,看來我們也應該趕往下一行程去了。

如果有空,趁著過年的好天氣,到田尾走走,買幾盆花回家佈置一下
可以讓你的過年好心情,延續到年尾喔~^^

Categories: 放假出遊記~ Tags: ,

三峽老街半日遊

2009年1月25日 尚無評論

原本是假日的星期六,但因為元旦補了一天結果變成是上班日
不過因為公司德政,今日不用上班,看著午后晴朗天氣,不出門可真對不起老天賜予的好天氣,所以安排到三峽老街走一趟

因為家住新莊,三峽老街可以說還不算太遠的行程,半天行就剛剛好啦!!
一到老街,清水街沿岸的柳樹,喚起我十多年前的回憶

前次來到三峽老街,已經忘了何時,只依稀記得是學生時代與同學們一同出遊至此
柳樹、清水祖師廟依舊佇立於此,不過整個街道已經美化不少,還記得先前印象
走在街上冷冷清清的,只對店門口老舊的富士霸王腳踏車有著深深的印象,就是個舊,及名副其實的「老」街呀
也許年輕時只是愛看新鮮有趣,走馬看花之下對三峽老街的印象非常的淺。
這次再次到訪,真的有全新感受,老街變漂亮了..

今天不是算上班日嗎? 整個三峽老街可真多人,該不會大家都是放無薪假吧 =.=|||
應該不是,至少我就不是,應該是很多人還是把週六當假日,上班會沒精神就請假啦(呵~請不要自己對號入座喔)

在清水祖師廟埕前,看著陀螺定點隊,正在表演著陀螺走鋼索,這些師父們,不是職業人士,但可以使出高超的特技,從在現場可以看到失敗就知,這些技巧都是這樣苦練來的,一次又一次的失敗,建立起成功那全場感動人心的喝采,相信這些師父們期待的也是那一刻的來臨

用戶插入圖片

有看到走鋼絲的陀螺嗎?(用追焦功能終於有對到陀螺)

用戶插入圖片

這裡的老先生,似乎人人都會打陀螺,在現場看到常常有像是路人就拿起陀螺打起來 哈~~不是往地上打喔~都是打到柱尖上

三峽除了陀螺有名之外,還有牛角麵包、豆干及染布,在大街上,盡是在賣牛角麵包及豆干的店家,在試吃的結果,哈~~每一家都好好吃喔,真的搞不太清楚那一家是真正的老店,以牛角麵店為例,除了有一家康喜軒金牛角有看過報導外,還有另一家就叫三峽金牛角也是小有名氣,不管誰是真正老店,大排長龍的對伍,在不景氣的這個時間點,看到就覺得台灣充滿了前景(呵~應該是三峽喔)。

用戶插入圖片

我一站進店裡,馬上外面擠滿了購買的人潮,看來我是福星。

用戶插入圖片

這個招牌,感覺真的有三峽老街的fu,對上今天的好天氣,個人覺得還蠻美的

而來到三峽老街,當然不能錯過,這個堪稱藝術品的清水祖師廟,清水祖師廟,始建於西元1767 (乾隆32年),曾因大地震 (西元1833年,道光13年) 的損害及日軍佔領台灣時因三角湧先民於此強烈抵抗,所以日軍遂焚燬祖師廟以洩恨(西元1895年,光緒21年)而重新修建過,再來就是光復後重建,重建至今已超過六十年,目前還在重建中呢!

為何重建這麼久呢? 由於品質的高要求、匠師人才的流失,以及資金的不足等因素,就不便在此多以說明,如有興趣可以參考李梅樹紀念館的介紹說明。

用戶插入圖片

入廟剛好看到師父們正在聚精會神描繪廟樑,整間廟宇的雕刻,真是無法用言語形容,還是抽空到此欣賞就能體會小弟的感覺了。

用戶插入圖片

光線從窗透入在祭拜香柱的輕煙相襯之下,特別有感覺..

用戶插入圖片

又重回到廟埕前,大樹下有老人們正在下著象棋,熱鬧的人們穿梭著,並沒有破壞此刻的寧靜,雙方兵馬,步步都是生死之間,耆老正在用心思索如何對敵軍來犯一舉殲滅。

美化後的三峽老街,除了濃厚的商業氣息外,還保有著一絲絲的純樸,希望三峽老街能這樣繼續下去,此次來並沒有看到染布及去參觀李梅樹紀念館,待下次有空再來一次探訪

Categories: 放假出遊記~ Tags: ,

JSON 解析與運用 for Java

2009年1月24日 尚無評論

json在jQuery使用ajax運用應該常會需要用到

去網路上找一下json目前在java上有沒有好的元件可以使用,找到一個不錯的open source,網址如下:

http://www.json.org/java/

他除了提供java物件轉換成json格式的功能
還有xml 與json之間互轉的實作,
所以算是該有的都有了,不過小弟目前只使用簡單的傳參數
所以就先介紹這個囉:

JSONObject  j = new JSONObject();
j.put(“code”,”000″);
j.put(“msg”,”hello world”);
out.println(j.toString());

最後會得到

{“code”:”000″,”msg”:”hello world”}

如果要更多的用法,它所提供的sample code就非常完整,千萬要先看一下,包你事半功倍 !!

Categories: Java Script Tags: ,

jQuery抓取跨網域外的資料(cross-domain) 運用JSONP

2009年1月21日 5 則評論

最近在測如何用jQuery讀取其它網頁的資料顯示,在網路上找到一篇簡單利用jQuery取得yahoo RSS新聞的範例,在本機可以執行,但一上server後就出現了沒有使用權限的問題

先前大概瞭解Javascript因為安全性問題,所以無法進行cross-domain的讀取,所謂cross-domain就是跨網域讀資料簡單來說就是a.com的網頁程式要去取b.com網頁資料,不過在現在web 2.0的時代,常會有需要進行跨網域的讀取,所以一樣大致上網整理了一下,目前有的作法如下:

JSONP

jQuery的文件有提到,從1.2版本開始支援使用 jQuery.getJSON(url,[data],[callback])
來進行跨網域讀取資料,原文如下:

As of jQuery 1.2, you can load JSON data located on another domain if you
specify a JSONP
callback, which can be done like so: “myurl?callback=?”. jQuery automatically
replaces the ? with the correct method name to call, calling your specified
callback.

如果要懂JSONP是什麼,小弟先前有篇文章就有提到,在此不多說啦,JSONP其實就是運用json資料格式,及回呼程式(callback=?)的方式達到可以取得到其它網域的資料並且執行後續callback的function,現在目前很多open API 例如yahoo,google, flickr 等都有支援callback的方式。

不過一般要使用JSONP,就是要你Client及Server之間的偶合度要高,除了其它有提供支援的網站可以使用外,所以適用度是有點限制的,不過還是要介紹一下,如何運作,在國王的新衣: JSONP 這篇網誌有提供取得flickr的圖片,小弟稍做修改成jQuery的寫法:

Client端:

$(function() {
   $('#button1').click(function(){
  var strURL='http://api.flickr.com/services/feeds/photos_public.gne?tags=羅平,油菜花,sunset&tagmode=all&format=json&jsoncallback=doPhoto';
  $.ajax({
     type:'GET',
     dataType:'jsonp',
     url:strURL,
   error: function(xmlHttpRequest,error) {
     alert('Ajax request ERROR');
   }
  })
   })
});
function doPhoto(result) { 
  var div = document.getElementById(“flickr”); 
  for(var i=0; i < result.items.length; i++) { 
   var img = document.createElement(“img”); 
   img.setAttribute(“src”,result.items[i].media.m); 
   img.setAttribute(“alt”,result.items[i].title); 
   var a = document.createElement(“a”); 
   a.setAttribute(“href”,result.items[i].link); 
   a.setAttribute(“target”,”_blank”); 
   a.appendChild(img); 
   div.appendChild(a); 
  } 

<input name=”button1″ id=”button1″ type=”button” value=”test” />
<div id=”flickr”></div>

Server端:

doPhoto({ 
“title”: “每個人的相片 已標籤 羅平, 油菜花 和 sunset”, 
“link”: “http://www.flickr.com/photos/”, 
“description”: “”, 
“modified”: “2007-04-22T14:19:09Z”, 
“generator”: “http://www.flickr.com/”, 
“items”: [
{
“title”: “羅平金雞嶺夕陽”, 
“link”: “http://www.flickr.com/photos/38362352@N00/468370409/”, 
“media”: {“m”:”http://farm1.static.flickr.com/211/468370409_319f383a24_m.jpg”}, 
“date_taken”: “2007-04-22T22:19:09-08:00”, 
“description”: “…”, 
“published”: “2007-04-22T14:19:09Z”, 
“author”: “nobody@flickr.com (Nature RGB)”, 
“author_id”: “38362352@N00”, 
“tags”: “sunset yunnan 油菜花 羅平” 
}
]
}) 

當Server端回傳json格式的資料時,會依callback傳的doPhoto回傳,剛好client我們有個doPhoto function去執行接收到json的資料,大致就是這樣,而http://a.webvm.net/也有一個很簡單的範例,是呼叫另一個domain的json格式的 hello world 。

跨域代理(Cross Domain
Proxy)

主要原理就是用php或者其他語言寫一個代理請求的轉發過程。客戶端請求自己的服務器,服務器把請求轉發到目標地址並且得到回應,服務器再
把結果返回給客戶端。這個過程,對於開發者來說還是不錯的選擇,因為你可以在服務器上對回應的結果做自己的處理,可以決定需不需把結果要返回給客戶端。 不過還是一樣,需要有伺服端的配合,不過至少不用限制說一定要被請求端回傳json格式的資料才行,而這個proxy寫起來不然但小心有心人士利用,所以還是要判斷一下是不是由你認定的客戶端下的請求或是限定只proxy哪些網址。

而參考範例,以參考 Javascript 抓取跨網域外的資料  Tsung's Blog 的文章,但也是調整一下來看:

Client端:

$(function() {
  $('#button1').click(function(){
  $.ajax({
    type:'Post',
    dataType:'html',
    data: {
    strURL:'http://tw.yahoo.com/'
    },
    url: “proxy.jsp”,
  error: function(xmlHttpRequest,error) {
    alert('Ajax request ERROR');
  },     
     success:function(html){
       $(“#flickr”).html(html);
     }
  })
  })
});

<input name=”button1″ id=”button1″ type=”button” value=”test” />
<div id=”flickr”></div>

Server端:

<?php
if (isset($_POST['url']) && !empty($_POST['url']))
{
    // 記得檢查此 URL 是不是你發出的 request
   echo
file_get_contents($_POST['url']);
}
?>

參考資料:
http://www.dotblogs.com.tw/topcat/archive/2008/08/08/4846.aspx
http://blog.zol.com.cn/859/article_858048.html
http://plog.longwin.com.tw/programming/2008/12/15/javascript-ajax-get-cross-domain-data-2008
http://carffuca.javaeye.com/blog/65239
http://happytemplate.blogspot.com/2007/11/jsonp.html
http://ibox.blog.sohu.com/107171814.html
http://www.javaeye.com/topic/169765
http://a.webvm.net/

Categories: Java Script Tags: , ,
分頁: 上一頁 1 2 3 ... 31 32 33 34 35 36 37 ... 86 87 88 下一頁