2011年9月20日星期二

Userscript - 自家製Google Image Search Preview

這類Google Image的Userscript有很多,但在userscripts.org上,做同樣功能的script,很多都沒有更新。



Google卻有時會更新頁面HTML碼導致Userscript失效,當然Firefox都有活躍的Extension如Thumbnail Zoom做到。

但既然如此,不如我自己寫一個出來,反正不是什麼深奧技術。
想使用的人,可以Select All然後Copy&Paste另傳一個txt文件,rename做js檔,拉去Firefox就可以安裝。

// ==UserScript==
// @name           Google Image Search Preview
// @version      18/09/2011
// @namespace      達MiNG
// @description    Mouse over and preview the image on Google images search result. This userscript will redirect Google Images to basic version. Find me at http://www.netatlantis.com/?p=3115
// @icon       https://lh5.googleusercontent.com/-Sookp-flc2I/TnXlDfP-0OI/AAAAAAAABTU/1vNWqGX4kYI/google-icon.png
// @require        http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
// @include        http://www.google.com/search?q=*&tbm=isch*
// ==/UserScript==

function addGlobalStyle(css) {
 var head, style;
 head = document.getElementsByTagName('head')[0];
 if(!head) {
  return;
 }
 style = document.createElement('style');
 style.type = 'text/css';
 style.innerHTML = css;
 head.appendChild(style);
}

// a function that loads jQuery and calls a callback function when jQuery has finished loading
function addJQuery(callback) {
 var script = document.createElement("script");
 script.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js");
 script.addEventListener('load', function() {
  var script = document.createElement("script");
  script.textContent = "(" + callback.toString() + ")();";
  document.body.appendChild(script);
 }, false);
 document.body.appendChild(script);
}

this.imagePreview = function() {
 /* CONFIG */
 xOffset = 10;
 yOffset = 30;

 // these 2 variable determine popup's distance from the cursor
 // you might want to adjust to get the right result

 /* END CONFIG */
 $("a.preview").hover(function(e) {
  this.t = this.title;
  this.title = "";
  var c = (this.t != "") ? "" + this.t : "";

  var src = this.href;
  if(src.indexOf('imgurl=') != -1) {
   var vars = [], hash;
   var hashes = src.slice(window.location.href.indexOf('?') + 1).split('&');
   for(var i = 0; i < hashes.length; i++) {
    hash = hashes[i].split('=');
    vars.push(hash[0]);
    vars[hash[0]] = hash[1];
   }
   src = vars["imgurl"];
  }

  $("body").append("

" + c + "

"); $("#preview").css("top", (e.pageY - xOffset) + "px").css("left", (e.pageX + yOffset) + "px").fadeIn("fast"); }, function() { this.title = this.t; $("#preview").remove(); }); $("a.preview").mousemove(function(e) { $("#preview").css("top", (e.pageY - xOffset) + "px").css("left", (e.pageX + yOffset) + "px"); }); }; // starting the script on page load $(document).ready(function() { var standardUrl = window.location.href; if(standardUrl.indexOf('sout=1') == -1) { var addToUrl = '&sout=1'; var basicUrl = standardUrl + addToUrl; window.location.replace(basicUrl); } else { addGlobalStyle('#preview{ position:absolute; border:1px solid #ccc; padding:0px; display:none;width:37px;height:37px;background-image:url(https://lh4.googleusercontent.com/-Nv-RqxGFQUg/TnXlCyUr_uI/AAAAAAAABTQ/hSiOpUTdufA/20088258937578778044.gif) }'); $('#imgtb a').addClass('preview'); // load jQuery and execute the main function addJQuery(imagePreview); } });

2011年9月19日星期一

del.icio.us bookmark停在14 Sep 2011?

有冇網友跟我一樣,所有tag的del.icio.us bookmark都停在14 Sep 2011?
無論是RSS或者是網頁上的,Login再Logout都是一樣.

聽聞del.icio.us被Yahoo轉售後,會於9月23號進行資料轉移,應該沒有關係吧...
還是早早Backup回自己的bookmark先...

2011年9月3日星期六

GIMP 2.7.3 single-window mode & change theme

GIMP 2.7.x終於都有Portable版了。
2.7版本一改以前那種多視窗顯示模式(亦是本人最痛恨的地方),可以轉成單一視窗,即是好像Photoshop般。
個人來說,還是較習慣Photoshop這種Layout。

其實我在公司用GIMP比較多,因為GIMP支援Layer,而且經常被要求做多次修改的話,是很有用的。
在家裡我就用PicPick內建的Editor就算了,始終都是一般Crop圖或加幾隻字而已。



而我選擇GIMP原因除了Layer支援外,還有就是Cross Platform,變得值得學習,那怕有一天轉用uBuntu都不怕。
而GIMP有著一般Freeware都沒有的Magnetic Lasso (真的~~如Paint.NET, PhotoFiltre 等等都沒有。)
只不過在GIMP中Magnetic Lasso 會被叫為Scissors Select Tool。



或者有人會想把沉悶的Windows Theme轉換到好像我上圖的黑色主題或其他,其實方法很簡單。
因為GIMP是用GTK+做介面,所以就可以更換Theme了。

Theme檔案可以在下列兩個網址找到,我自己不是GTK+方面的高手,所以或者會有咁多好地方找Skin。
官方GTK+ themes and theme engines
GNOME-Look

替換Theme方法:
1. 把下載回來的Theme檔案unzip後,應該會找到一個叫"gtk-2.0"的資料夾,把當中的gtkrc檔案 overwrite
至GIMP下的"\App\gimp\etc\gtk-2.0"資料夾即可。
2. 有部份的Theme需要用上專屬的engines dll檔,如果有的話,把它放去GIMP下的"\App\gimp\lib\gtk-2.0\2.10.0\engines"就可以。
其實這個替換方法,我不知道是否正確,但至少做到想要的效果就算了。


GIMP 2.7.3 Portable
http://portableapps.com/apps/graphics_pictures/gimp_portable#test
GIMP – Scissors Select Tool (Magnetic lasso Photoshop) – How to make a cut out/render