firefoxグレイスケール化

ImgLikeOperaを用いて画像とフラッシュを切る

https://addons.mozilla.org/ja/firefox/addon/1672

  • 画像をグレイスケールにする為にはdeligate+imagemagick等で画像を加工する必要がある
  • フラッシュには色が付いている。

画像周りをグレイスケールにする方法はfirefoxだけでは不可能なので思い切って切る。
ツール->アドオン->拡張機能->ImgLikeOpera->設定->キャッシュ・その他->新規ウインドウ/タブのデフォルト設定を画像を読み込まないに設定
ツール->アドオン->拡張機能->ImgLikeOpera->設定->キャッシュ・その他->その他->Shwo experimental options tabをチェック
ツール->アドオン->拡張機能->ImgLikeOpera->設定->実験的なオプション->Flashをブロックするをチェック

以上で画像周りはOFFできる
画像をロードしたいときには右クリックメニューで画像を読み込めばOK

スタイルシートから色を抜く

二つ方法がある。

Stylishを用いる方法

https://addons.mozilla.org/ja/firefox/addon/2108

以下をGlobalで適用するようにする。
全てのスタイルの色を消す。(コメント部分を外すとフォントも統一。)

body *,body {
  color:#999 !important;
  border-color:#CCC !important;
  background-color:white !important;
/*  font-size: 9pt !important;*/
}
Greasemonkeyを用いる方法。

https://addons.mozilla.org/ja/firefox/addon/748

以下のユーザースクリプトを全てのページに適用すればOK。
google等のjavascriptでロードされているページではたまに取りこぼすことがありますが、Alt-GまたはステータスバーのGreasemonkeyのメニューから再実行するとOK。

function convertStyle() {
  all = document.getElementsByTagName('*');
  for(i=0; i < all.length; i+=1){
    element = all[i];

    setColor(element,"color","null","color","color");
    setColor(element,"background-color","transparent","backgroundColor","background-color");
    setColor(element,"border-top-style","none","borderTopColor","border-top-color");
    setColor(element,"border-bottom-style","none","borderBottomColor","border-bottom-color");
    setColor(element,"border-right-style","none","borderRightColor","border-right-color");
    setColor(element,"border-left-style","none","borderLeftColor","border-left-color");
  }
}

function setColor(element,ifProperty,ifValue,setProperty,procProperty)
{
  if(getComputedStyle(element,'').getPropertyValue(ifProperty) !== ifValue) {
	  element.style[setProperty] = getComputedStyle(element,'').getPropertyValue(procProperty).replace(
            /rgb\((\d+)\,\s*(\d+)\,\s*(\d+)\)/i,
            function (col,r,g,b,idx,old) {
              G = Math.floor(g*0.29 + r*0.31 + b*0.27 + 256*0.12);
              return "rgb("+G+", "+G+", "+G+") !important";
            });
  }
}

convertStyle();

setTimeout(convertStyle,5000);

GM_registerMenuCommand("Gray",convertStyle, "g", "alt", "g");

Gを以下に加工すれば http://q.hatena.ne.jp/1176067277 にも対応可能だった。

              G = Math.floor(g*0.34 + r*0.33 + b*0.33) ;
              G = 255-G