Posted by
tka – 2008-10-25
基本上這邊的方法是參考在 UTF8 編碼下的網頁簡繁互轉跟 新同文堂兩者後進行整合得到的,一支程式可以同時在big5, gbk ,utf8 三種編碼下使用(其實是所有的編碼都可以,但是中文常見的是這三種),並且可擁有詞庫對應功能,在簡繁並存的網頁上會有比較好的效果(基本上就跟新同文堂轉出來的效果一樣),瀏覽器測過FF3 跟 IE6&7都沒問題。
效果如下
程式碼放在
javascript程式(需搭配jquery)
簡繁體字詞對應資料(資料由新同文堂中取出,已獲得 softcup自由取用的許可)
Posted by
tka – 2008-10-12
目前我是用vim + flex sdk來做flex的開發,跟server端則是透過remoteObject 與amfphp做溝通。但是這常遇到一個討厭的狀況,就是當我透過fcsh把swf檔編譯出來後,要上傳到server端才能夠正常的run跟debug。使得每次編譯完都要做一次rsync的動作。後來想到架一個proxy來把遠端的url指到本機上的檔案不就好了。一開始是用squid+apache來做這件事情,後來想起來apache自己就有mod_proxy可用呀,於是乎就在local裝上 apache,然後把下面的設定貼在config裏面就好了。
ProxyRequests On
ProxyVia On
<Proxy *>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Proxy>
RewriteEngine On
RewriteRule http://aaa.com/bbb/ccc.swf.* http://127.0.0.1/ccc.swf [P]
如此一來, 再把apache Doucment Root下建立ccc.swf的link,並且設定firefox連線時透過127.0.0.1:80的proxy,這樣子firefox再開啟http://aaa.com/bbb/ccc.swf時就會去載入剛剛透過fcsh編譯好的東西了。省下一天到晚rsync的動作
Posted by
tka – 2008-10-08
最近想把肉膚色的圖片找出來,於是就Google了一下,最後發現使用HSV值去做判斷是比較好的方法。於是就用php硬幹了一個做測試,使用(((0<=$h && $h <=1.10)||$h>5.18 )&& 0.1<=$s && $s <= 0.63 && 0.35<=$v && $v <=1)當條件,效果還可以接受,原始碼如下
function rgb2hsv
($r,$g,$b){
$r=$r/255;
$g=$g/255;
$b=$b/255;
$max=max($r,$g,$b);
$min=min($r,$g,$b);
$v=$max;
if($max-$min==0
){
return array(0
,0
,$v);
}
$s=($max-$min)/$max;
if($max==$r){
$h=(6
+($g-$b)/($max-$min));
}elseif($max==$g){
$h=(2
+($b-$r)/($max-$min));
}elseif($max==$b){
$h=(4
+($r-$g)/($max-$min));
}
$h=(($h*60
)%360
)*(2
*pi()/360
);
return array($h,$s,$v);
}
$img=imagecreatefromjpeg("./1.jpg");
$img2=imagecreatetruecolor(ImageSX($img),ImageSY($img));
for($y=0;$y<
;ImageSY
($img);$y++){
for($x=0;$x<
;ImageSX
($img);$x++){
$rgb = imagecolorat($img, $x, $y);
$r = ($rgb >
;>
; 16
) &
; 0xFF;
$g = ($rgb >
;>
; 8
) &
; 0xFF;
$b = $rgb &
; 0xFF;
//print_r(rgb2hsv($r,$g,$b));
//die();
list($h,$s,$v)=rgb2hsv
($r,$g,$b);
if(((0
<
;=$h &
;&
; $h <
;=1
.10
)||$h>
;5
.18
)&
;&
; 0
.1
<
;=$s &
;&
; $s <
;= 0
.63
&
;&
; 0
.35
<
;=$v &
;&
; $v <
;=1){
//if(0<=$h && $h <=1.388 && 0.23<=$s && $s <= 0.63 && 0.25<=$v && $v <=1){
imagesetpixel( $img2 , $x , $y , $rgb);
//echo "==$x,$y==\n";
//var_dump($r, $g, $b);
//var_dump($h, $s, $v);
}else{
imagesetpixel( $img2 , $x , $y , 0
);
}
}
//die();
}
imagepng($img2,"2.png",9
,PNG_ALL_FILTERS
);