2010年3月1日月曜日

ブラウザの外枠とWebページの表示枠のサイズを取得する方法

ブラウザの外枠とWebページの表示枠のサイズを取得する方法をメモしておきます.

ブラウザの外枠とWebページの表示枠のサイズは,Windowオブジェクトの次のプロパティが持っています.

window.outerWidth ブラウザの外枠の幅
window.outerHeight ブラウザの外枠の高さ
window.innerWidth Webページの表示枠の幅
window.innerHeight Webページの表示枠の高さ

ただし,IEは別のところに持っているそうです.

2010年2月3日水曜日

CygwinでOpenCVを利用したプログラムをコンパイルする方法

CygwinでOpenCVを利用したプログラムをコンパイルする方法をメモしておきます.

gcc -I/opt/opencv/include/opencv -L/opt/opencv/lib -o test test.c -lcv200 -lcxcore200 -lhighgui200

ライブラリの指定がtest.cの前にあるとそのライブラリにリンクに失敗します.つまり,次のように入力して実行すると,リンクに失敗します.

gcc -I/opt/opencv/include/opencv -L/opt/opencv/lib -lcv200 -lcxcore200 -lhighgui200 -o test test.c

C言語は久しぶりに使ったのですが,そんなルールだったっけ?

ちなみにtest.cの内容は以下の通りです.ページ[1]にあるソースコー
ドを使わせていただきました.

#include "cv.h"
#include "highgui.h"

int main(int argc, char* argv[]) {
    IplImage* img;
    char imgfile[] = "lena.jpg";

    img = cvLoadImage(imgfile, CV_LOAD_IMAGE_COLOR);

    cvShowImage ("lena", img);
    cvWaitKey (0);
    cvDestroyWindow("lena");

    cvReleaseImage(&img);

    return 0;
}


CygwinとOpenCVのバージョンは,以下の通りです.

Cygwin 2.680
OpenCV 2.0.0a win32

[1] OpenCVを使ってみよう, OpenCVで学ぶ画像認識 第2回

2010年1月29日金曜日

固定サイズの要素の中にアスペクト比を保って画像を表示する方法

固定サイズの要素の中にアスペクト比を保って画像を表示する方法をメモしておきます.

var frameElement = document.createElement("div");
frameElement.style.width = XXX + "px";
frameElement.style.height = YYY + "px";
var imageElement = document.createElement("img");
frameElement.appendChild(imageElement);
dojo.connect(imageElement, "onload", function() {
var aspectRatio = this.width / this.height;
if(aspectRatio > frameElement.style.width / frameElement.style.height) {
this.style.width = frameElement.style.width;
}
else {
this.style.height = frameElement.style.height;
}
});

2009年9月17日木曜日

dojox.gfx の createImage で画像が表示されない

dojox.gfx の createImage を使って画像を表示できないという問題の解決方法をメモしておきます.

surface = dojox.gfx.createSurface(parentNode, 400, 300);
image = surface.createImage({x: 0, y: 0, width: 400, height: 300, src: "image.jpg"});
image.rawNode.removeAttribute("fill");


[1]のページを手掛かりに読み進めてみると,上記の関数によって作られる SVG の要素に値が none の fill 属性が設定されていることが原因のようです.この問題はすでに解決済みのようですが,正式版(バージョン1.3.2)にはまだ反映されていないようです.

そういうわけで,とりあえず,上のコードの3行目を追加してみました.これで原因となっている属性を消せるので,画像が表示されるようになります.

[1] Surface createImage fails on Firefox 3.5

2009年9月13日日曜日

Eclipse Galileo に Subversive をインストールする方法

Eclipse Ganymede に Subversive をインストールしたので,その手順をメモしておきます.
  1. 「Help」 -> 「Install New Software...」を選択
  2. 「Work with」で「Galileo - http://download.eclipse.org/releases/galileo」を選択
  3. 「Collaboration」 -> 「Subversive SVN Team Provider (Incubaion)」を選択
  4. 「Next」を選択
  5. 「Next」を選択
  6. 「I accepted the terms of the license agreements」を選択
  7. 「Finish」を選択
  8. 「Help」 -> 「Install New Software...」を選択
  9. 「Add」を選択
  10. 「Name」に「Subversive SVN Connectors」と入力
  11. 「Location」に「http://community.polarion.com/projects/subversive/download/eclipse/2.0/update-site/」と入力
  12. 「OK」を選択
  13. 「Subversive SVN Connectors」->「SVNKit 1.3.0 Implemenation (Optional)」を選択
  14. 「Next」を選択
  15. 「Finish」を選択
  16. 「Yes」を選択

[1] Eclipse Galileo (3.5)にSubversiveをインストールする方法

2009年9月12日土曜日

Dojoで独自モジュールのクラスを作成する方法

Dojoで独自モジュールのクラスを作成する方法をメモしておきます.なお,以下の内容は,Dojoライブラリに含まれるdojo.jsを${APPHOME}/js/dojo/dojoに配置した状況で,${APPHOME}/jsにmizomemoモジュールのHogeHogeクラスを定義し,そのインスタンスを${APPHOME}/hogehoge.html内で生成する場合の説明です.

1. ${APPHOME}/js/mizomemo/HogeHoge.js の内容を次のようにする.

dojo.provide("mizomemo.HogeHoge");

dojo.declare("mizomemo.HogeHoge", null, {
  // フィールドやメソッドを定義する
});


2. ${APPHOME}/hogehoge.html の内容を次のようにする.

<script type="text/javascript" src="js/dojo/dojo/dojo.js" djConfig="parseOnLoad: true, modulePaths: {'mizomemo': '../../mizomemo'}"></script>
<script type="text/javascript">
<!--
dojo.require("dojo.parser");
dojo.require("mizomemo.HogeHoge");

dojo.addOnLoad(function() {
  var hogehoge = new mizomemo.HogeHoge();
});
// -->
</script>


[1] Dojoのモジュールシステム

2009年6月6日土曜日

JNIにてjava.lang.UnsatisfiedLinkError

「java.lang.UnsatisfiedLinkError」という例外に遭遇した場合の対処方法をメモしておきます.

この例外は,JNIを通して利用するDLLが環境変数PATH等にない場合に生じるみたいです.したがって,解決方法は以下のようになります.

・環境変数PATHにDLLが置かれたディレクトリのパスを追加する.

[1] JNIメモ(Hishidama's Java native interface Memo)