投稿

4月, 2012の投稿を表示しています

画像解析ソフトウェア ImageJ

イメージ
オープンソースの画像解析ソフトであるImageJを紹介しようと思う。開発はアメリカ国立衛生研究所(NIH)で、Javaで作られている。 http://rsbweb.nih.gov/ij/ 2013.02.09 現在 最新バージョン: ImageJ 1.47i 3.1MB これに Java の JVM を含む jre が必要。すでに PC にインストールされていれば、本体だけダウンロードすれば使える。Java で作られていることもあって、かなりコンパクトなファイルサイズになっている。一度インストールすれば、Help メニューからのアップデートで簡単にバージョンアップができる。 2011.4.19 そもそもJavaで作られたアプリケーションなんて珍しいと思って使ってみたのがはじまり。使ってみたら意外と実用的で快適だったので、それ以来手放せなくなっている。 主に医療、科学分野で利用されている画像解析ソフトだが、個人的に解析するようなことはないので、Blogや仕事で使う画像の加工などに利用している。基本的な画像処理なら問題なく出来るし、重装備画像処理ソフトと比べて動作が軽いのでストレスがない。ということで、ここ数年はずっとImageJばかり使って、Photoshopなんて起動もしなくなってしまった。見た目は上の画像の通り、メニューバーのみで、画像処理ソフトらしからぬ質素なインターフェイスだが、それが返って使いやすかったりする。 個人的に気に入っているところは、以下のようなところ。 無料: オープンソース&パブリックドメインのソフトウェアである。これは重要。 Java製画像解析ソフト: 個人的にJavaが好きなのでJava製というだけでポイント高い。 Javaなのに高速処理できる: Javaは遅いというイメージを払拭する出来映え。ネイティブで処理しているんじゃないか?と疑うぐらい高速。 マルチプラットフォーム: Windows, Mac, Linux で利用可能。Javaならではのメリット。 シンプルなツール: メニューバーだけ。画面を占領せず控えめな印象であるが、機能は強力で使い勝手はよい。他の画像処理ソフトみたいにパレットだらけにならないところが快適。 起動がまぁまぁ速

C言語 その他の制御文 switch, while, do, goto

これらの制御文は機能的には if, for で代替できる。使う理由としては、コードの読みやすさを優先させるため。扱いが楽という意味で、Syntax Sugarという。goto文に関しては、むやみに使わないようにとある。バグ、メンテなど問題が発生しやすいという理由から。これらの制御文は積極的に使うつもりはないので、基本的な書き方だけ載せておく。 while #include &ltstdio.h&gt int main(void){ int i=10; while(i>0){ printf("カウントダウン %d\n",i); i--; } return 0; } while文は条件を満たしている間繰り返す。 カウントダウン 10 カウントダウン 9 カウントダウン 8 カウントダウン 7 カウントダウン 6 カウントダウン 5 カウントダウン 4 カウントダウン 3 カウントダウン 2 カウントダウン 1 do while #include &ltstdio.h&gt int main(void){ int a = 11; int i = 1; do{ printf("%d回通過 a=%d\n",i,a); i++; a++; } while(a < 10); printf("%d回実行して終了\n",i-1); return 0; } do whileは条件を満たしていなくても1回は通過させる。 1回通過 a=11 1回実行して終了 switch #include &ltstdio.h&gt int main(void){ int a = 2; switch(a){ case 0: printf("aは0です\n"); break; case 1: printf("aは1です\n"); break; case 2: printf("aは

C言語 ポインタ pointer

難解と言われているポインタ。通常の変数と違って、任意の変数のアドレスを格納するのがポインタ。アドレスとは、メモリに割り当てられている住所のことで、変数はアドレスを持っている。プログラムが変数にアクセスするときには必ずアドレスが必要になる。ポインタはその変数のアドレスを直接扱うことができる。このポインタを使うことで、効率的なプログラムを実現することができ、C言語では欠かせない機能となっている。でも読みにくいコードになりやすく、巨大なプログラムになると、バグ出しが大変になってしまう。また深刻なダメージを与えかねないため、新しい言語の多くでポインタは廃止され、より安全な方向になっている。しかし内部的にはポインタと同じことをしている。単に表面的にポインタをなくし、ポインタを意識しなくてもプログラミングできるようにしているだけのこと。C言語のポインタを学ぶことで、メモリの扱いなどローレベルの動きがイメージしやすくなるので、高速なアルゴリズムなどを目指すならトライしておきたい。色々な使い方があるので、まずは簡単な例でポインタを確認するところからスタート。 ポインタの一番シンプルな例 #include &ltstdio.h&gt int main(void){ int x = 500; int *p; /* ポインタの宣言「*」アステリスクが付く */ p = &x; /* &x は x のアドレス pポインタにxのaddressを代入 */ /* int *p = &x; と書いても同じ */ printf("x = %d\n",x); /* xの中身= 500 */ printf("x Add = %x\n",&x); /* xのアドレス= 23ff48 */ printf("*p = %d\n",*p); /* pが指すxの中身= 500 */ printf("p = %x\n",p); /* pの中身= 23ff48 */ printf("p Add %%x = %x\n",&p); /* pのアドレス= 23ff4c */

C言語 関数 function

C言語は関数という単位で構成されている。関数は処理のまとまりであり、それらを組み合わせることでプログラムが作られている。プログラムを書くことは、そのまま関数を書くことになる。main(){}がひとつの関数であり、プログラムのスタート地点となる。main関数の中にダラダラと複数の処理を書くことも可能であるが、作った関数の再利用や、保守性などを考えると、機能ごとに分けたほうがよい。簡単なサンプルで解説してみる。(子供に説明するために作ってます。) main関数のみの例 /* Cを書く上で最低必要な標準関数 */ #include &ltstdio.h&gt /*三角形の面積を求める voidは引数を取らない*/ int main(void){ int x = 10; /*底辺*/ int y = 12; /*高さ*/ /*三角形の面積を計算して出力*/ printf("三角形の面積= %d\n",x*y/2); return 0; /*プログラムの終了 無事終了=0を返す */ } 三角形の面積を求めるプログラムをmain関数の中で行っている。結果は以下の通り。 三角形の面積= 60 上記をmain関数とcalc関数の2つに分ける #include &ltstdio.h&gt /*calc関数 三角形の面積を求めて表示 voidは戻り値がないことを宣言。 ()内は仮引数(parameter) コピーされた値 */ void calc(int a,int b){ /*三角形の面積を計算して表示*/ printf("三角形の面積 %d\n",a*b/2); return; /*処理後値なしでmainに戻る 本来省略*/ } /*メイン関数 プログラムは、ここからスタート*/ int main(void){ int x = 10; int y = 12; /*値をcalc関数に渡し、処理はcalcへ移る */ calc(x,y); /* ()の中が引数(argument) 値渡し。*/ /*calc関数終了後returnで、ここに戻ってくる */ return 0; /*プログ

C言語 if文

分岐if文の書き方 if(イフ)文は分岐制御をする。分岐には他にswitch文もあるが、プログラムの読みやすさを重視したもので、機能的にはif文ですべて可能であり、より柔軟性のある制御ができる。 基本的なif文 #include &ltstdio.h&gt int main(void) { int a=6; if (a%2==0) { printf("%dは偶数です\n",a); } return 0; } 最も基本的なスタイル。処理文は{}で囲む。処理文は{}内に複数あっても構わない。 6は偶数です {}を省略したif文 #include &ltstdio.h&gt int main(void) { int a=6; if (a%2==0) printf("%dは偶数です\n",a); return 0; } 条件後の1文セミコロンまでを実行する。 6は偶数です 基本的なif~else文 #include &ltstdio.h&gt int main(void) { int a=7; if(a%2==0) { printf("%dは偶数です\n",a); } else { printf("%dは奇数です\n",a); } return 0; } 条件がfalseのときの処理をelse{}で用意する。条件がtrueの場合はelse{}の処理はされない。 7は奇数です switch文の代替としてのif文 #include &ltstdio.h&gt int main(void) { int a=2; if (a==0) { printf("aは0です\n"); } else if(a==1) { printf("aは1です\n"); } else if(a==2) { printf("aは2です\n"); } else if(a==

C言語 インクリメント デクリメント

インクリメントは値を1増やし、デクリメントは1減らす演算子。プログラム中で頻繁に使われる。この演算子は ++a のように前につけることも出来るし、a++ のように後ろでもつけることができる。しかし代入の際には注意する必要がある。 前置、後置の違い #include &ltstdio.h&gt int main(void){ /* increment */ int a; int b; a = 0; b = 0; b = a++; /* b=a 代入後に a+1 計算 */ printf("b=a++\tb=%d\ta=%d\n",b,a); /* b=0 */ a = 0; b = 0; b = ++a; /* a+1 計算後に b=a 代入 */ printf("b=++a\tb=%d\ta=%d\n",b,a); /* b=1 */ /* decrement */ a = 0; b = 0; b = a--; /* b=a 代入後に a-1 計算 */ printf("b=a--\tb=%d\ta=%d\n",b,a); /* b=0 */ a = 0; b = 0; b = --a; /* a-1 計算後に b=a 代入 */ printf("b=--a\tb=%d\ta=%d\n",b,a); /* b=-1 */ return 0; } 結果は以下のようになる。代入してからインクリメントされるか、インクリメントしてから代入するかの違いがある。 b=a++ b=0 a=1 b=++a b=1 a=1 b=a-- b=0 a=-1 b=--a b=-1 a=-1 C言語 ANSI C89 Meadow & MinGW GCC 目次はこちら

C言語 for文

繰り返し処理を行うfor文の書き方 for(フォー)文は繰り返し処理をするときに使う文。C言語では他にwhile文 や do/while文も繰り返し文として存在するがfor文で代替可能。またfor文は複雑な繰り返し文にも対応できる柔軟性がある。新しいプログラミング言語のGo言語ではwhile文とdo/while文は採用されていない。繰り返し文はfor文だけで問題ないことが分かる。 C言語ではカウントの役目を果たす int i; の宣言をfor文の継続条件式の中で出来ないため、外で宣言する。C++やJavaでは中で宣言可能。 基本的なfor文 #include &ltstdio.h&gt int main(void) { /* for 処理文を{}で囲む 一般的なスタイル */ int i; /* C言語はfor式の外で宣言 */ for (i=0;i&lt3;i++) { printf("%d回目の処理\n",i+1); } return 0; } (i=0;i&lt3;i++)の中の説明 (カウントの初期化; ループ継続条件; カウントアップ) i=0; カウントを初期化する。 i&lt3; iが3よりも小さい間、繰り返す。 i++ カウントアップ。まず継続条件内であれば、1回処理した後に i に 1 を加える。つまり1回目はi=0で実施し、2回目はi=1、3回目はi=2、4回目はi=3で継続条件を満たせないため、for文を抜けるという具合。実行結果は以下のようになる。 1回目の処理 2回目の処理 3回目の処理 簡易的なfor文 #include &ltstdio.h&gt int main(void) { /* for 処理文が1行のときの簡易的な書き方 */ int i; for (i=0;i&lt3;i++) printf("%d回目の処理\n",i+1); return 0; } for文の継続条件式の後にある 1文;(セミコロン)までがループの範囲。上記例ではforから処理文まで1行で書かれているが、処理文を改行していても問題ない。セミコロン以降に処

Go言語をインストール

イメージ
Golang http://golang.org/ Go言語はGoogleが2009年に発表した新しい汎用プログラミング言語。先月の2012年3月にWindowsにも対応したversion1がリリース。簡単にWindowsにインストールできるようになったので、少し試してみようと思う。Go言語はCやC++に置き換わるような言語を目指しているので、興味深く思っていたところ。魅力的に感じたところはコンパイルが抜群に速く、実行速度もC並みに高速であること。オープンソースであること。並列処理が得意、ガベージコレクションがあること。静的言語でネイティブであること。つまりJavaのようなVMを必要としない。言語仕様がシンプルだということ。後発言語だけあって、他の言語の欠点を補っているように見える。ただ、実用性を重視しているためか、原始的な部分が見え隠れする。それが返って好印象だったりする。今後ライブラリー等が充実してくれば、それなりにブレークするかもしれない。下の絵はGo言語のマスコットキャラクター。 WindowsXPへのインストール 下記サイトからWindows用をダウンロードする。 http://code.google.com/p/go/downloads/list このページに各種プラットフォーム向けのものが置いてある。今回はWindowsXPなので、以下のzipをダウンロード。 go.go1.windows-386.zip (30.1MB) 2012/3/28リリース go1 Windows (x86-32, for both Intel and AMD 32-bit) ZIP archive Featured ダウンロードしたzipファイルを解凍すると、goフォルダができる。この容量は107MB。とりあえず、 C:\go に置くことにした。 次にpathを通す。 C:\go\bin; これで利用可能になったはず。確認のために、コマンドプロンプトから、go と打ってみる。 こんな感じで認識されればOK。 GoでHello World 次に公式ホームページでGo言語の文法に沿ってソースファイルを書いてみる。公式ページは言語仕様、チュートリアルなどもあるし、日本語情報も充実しているのでGoの学習はお手軽だ。まずMeado

C言語 標準ヘッダ

C標準ライブラリ関数 Cのプログラムを書くときの決まり文句である #include &ltstdio.h&gt 。プログラムとして動かすときに必要な関数がここに書かれている。他にも使用頻度の高いものを集めたものを標準ライブラリ関数という。必要に応じてincludeして使う。下の一覧がC89の標準ライブラリ関数。予想以上に少なかった。各ヘッダの中にはメソッドが入っていて、includeすれば自由に使うことができる。使うものは限られると思うので、さらっと見て、使いそうなメソッドだけを試していこうと思う。 http://ja.wikipedia.org/wiki/標準Cライブラリ Header file C89 stdio.h 標準入出力 MinGW\include stdlib.h 汎用関数 MinGW\include ctype.h 文字処理 MinGW\include string.h 文字列処理 MinGW\include math.h 数学関数 MinGW\include float.h 浮動小数点型特性 MinGW\include limits.h 整数型の大きさ MinGW\include time.h 日付 MinGW\include stddef.h 共通定義 MinGW\lib\gcc\mingw32\4.6.2\include assert.h 診断 MinGW\include errno.h エラー MinGW\include locale.h 文化圏固有操作 MinGW\include setjmp.h 大域ジャンプ MinGW\include stdarg.h 可変引き数 MinGW\lib\gcc\mingw32\4.6.2\include signal.h signal処理 MinGW\include C89以降下記が追加されている。便利そうなものもあるので、後々使っていくかもしれない。 Header file C95 追加 iso646.h 代替つづり MinGW\lib\gcc\mingw32\4.6.2\include wchar.h

C言語 GCC でコンパイル&リンク オプション

ソースファイルから実行ファイルまでの流れ コマンドプロンプトで、gcc test.c とか打つと一発でexeファイルまで作れてしまうが、作業としてはコンパイルとリンクの2段階に分かれている。 1 コンパイル テキストファイルであるソースファイル(拡張子 .c )からオブジェクトファイルを作る。この作業がコンパイル。このオブジェクトファイルの拡張子は .o で、マシン語に翻訳されたもの。まだプログラムとしては実行できない。ファイルサイズはかなり小さくHelloWorldだと500byteぐらい。 2 リンク オブジェクトファイルに標準関数などのライブラリの追加や、各種設定を行って、実行ファイルである.exeファイルを作る。ファイルサイズは大きくなって、HelloWorldで47KBぐらいになる。リンク作業を行うことで、はじめてプログラムとして機能する。 gccには多数のコマンドオプションがあって細かく制御できる。gccのサイトで確認できる。 http://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html またコマンドの組合わせによっては複数同時に使うこともできる。使いそうなものだけをメモ。 オプションなし「a.exe」をつくる gcc test.c test.cという名のソースファイルから、exeファイルを作る。コンパイルとリンクがセットになった処理。exeの名前は指定していないので、すべて a.exe となる。また再度同じようにコンパイルすると、常に上書きされていく。ファイルがむやみに増えることもなく便利。 名前を指定して「test.exe」をつくる gcc test test.c test.exeという名前になる。 複数ソースファイルから「a.exe」をつくる gcc test1.c test2.c 2つのファイルをコンパイル&リンクして、ひとつのa.exeをつくる。関数を別のファイルに分けたときなどに使う。もちろん名前の指定もできる。 -c コンパイルのみを行いオブジェクトファイル「test.o」をつくる gcc -c test.c リンク作業はしない。複数ファイルの場合は、それぞれの名前のオブジェクトファイルが

C言語のデータ型 data type

Cの代表的なデータ型をプログラムから調べてみる C言語のデータ型はJavaから入った身としては違和感がある。intはコンパイラや環境で2通りありえるという曖昧なもの。WindowsXPでgccを使う場合はlongと同じだった。Javaのlongは8byteなのに対して、Cでは4byte。これは並行して使う場合は混乱を招く。個人的にはJavaとなるべく統一して使いたいので、Cではlongを使わず、long long(8byte)を使うようにする。でもlong longはC99の仕様のようだ。実際こんなデカイ整数型はJavaでも使ったことがないので、たぶん使わないと思う。 charも特徴的である。Javaでは2byteの文字型なのに対して、Cは1byteで、文字専用ということでもない。シンプルに1byte分の整数を入れると考えた方がよさそうだ。 ANSI C89ではbooleanはなく、他で代用する必要がある。まったく問題ないけど。 Cのデータ型は仕様を見る限り、とってもローレベルな匂いがする。バイナリーをダイレクトにいじるには、抽象的なJavaよりよさそうだ。 data type type byte bit 範囲 signed char 1 8 -128~+127 整数 unsigned char 0~+255 signed short 2 16 -32768~+32767 unsigned short 0~+65535 signed int 4(2) 32(16) longと同じ(shortと同じ) unsigned int unsigned longと同じ(unsigned shortと同じ) signed long 4 32 -2147483648~+2147483647 unsigned long 0~+4294967295 signed long long 8 64 -9223372036854775808~+9223372036854775807 unsigned long long 0~+18446744073709551615 float 4 32 1.17549e-038~3.4028

C言語をかじりはじめる

ローレベルをいじりたい Javaをはじめてから2年近く経つ。これまで音関係の小さなプログラムをいくつか作ったりしてみたが、ローレベルな操作が可能なC言語にも興味が出始めたので、少しかじってみようかと思う。やることはANSI(米国国家規格協会 American National Standards Institute)の標準規格範囲。つまりコンソールアプリまで。プラットフォーム依存のライブラリを駆使してGUIを使うようなことはしない。バイナリデータをいじくるのが目的なのでCUIで十分。この範囲であれば、プラットフォームが変わっても、その都度、再コンパイルすれば使えるようになる。 マルチプラットフォームなGUIツール 後日知ったのだが、C/C++によるGUIアプリでも、マルチプラットフォーム化する方法があるのね。RAD (Rapid Application Development)と呼ばれる+GTKとかwxWidgetsというGUIツールを使ってプラットフォームごとにコンパイルすることで、Linux,Win,Macで動かすことができるようだ。AudacityではwxWidgetsを使っているので、そのうち使ってみたい。でもC++で書く必要があるので、かなり先になりそうだ。まずはCだけで、そこそこ中身を書けるようにしておきたい。その次にC++をやって、次にGUIという流れかな。道のりは長い。 学習方法 ネット上の情報を頼りにするつもり。今のところ入門書は買うつもりはない。C言語はC++やJavaに比べ言語仕様は小さく、覚える内容そのものは少ないので何とかなるだろう。後から見て思い出せるようにBlogに残しておこうと思う。Blogには、サンプルを実行できる単位で載せておく。またその実行結果もすぐ下にプロンプト風にして載せておく。これがメインのコンテンツになると思う。この手の学習はサンプルとのにらめっこが中心で、それをフォローする程度の説明があれば十分と思う。ダラダラ長い解説よりはサンプルでしょ。また、実用的なサンプルだとソースが長くなりすぎて見るのも嫌になるので、短くポイントだけ分かるようにしておく。そういうサンプル作るのって意外と難しいのだけど、がんばってみる。 C言語について UNIXのために作られた言語というぐらいしか知らなかったので、Wik

ソースファイルの文字コードについて

イメージ
文字コード C言語の文字コードは本来EUCが推奨のようだが、開発環境がWindowsXPということもあって、ソースファイルの文字コードはshift-jisも兼用して書くことにした。EUCだと実行ファイルにしたとき文字化けを起こして日本語が使えない。日本語を出力したいときはshift-jisで、それ以外はEUCにしようと思う。 Medowの文字コード変換は C-x RET f (RETはreturnキー windowsだとEnterだけど・・・) と打つと Coding system for visited file (default, nil): が表示されるので、その後ろに euc-japan もしくは sjis-dos と入力。これでモードが切り替わる。 下がEUCの画面。Eと表示がある。 下はshift-jisの画面。Sと表示がある。 C言語 ANSI C89 Meadow & MinGW GCC 目次はこちら

C言語で Hello World

イメージ
コマンドプロンプトで HelloWorld 以下のソースコードをMeadow(テキストエディタ)で書く。ファイル名を helloworld.c とした。 #include &ltstdio.h&gt /* 実行するとmainから開始される */ int main(void) { /* 表示 */ printf("Hello, ANSI C89 World\n"); /* プログラムの終了部分「0」は正常終了 */ return 0; } 上記を保存して、コマンドプロンプトから gcc helloworld.c と打ってコンパイル。その後に、a.exe もしくは a と打ってコンパイルされたプログラムを実行してみると、以下の出力が得られる。 Hello, ANSI C89 World Meadow上でコンパイル及び実行してみる Meadowのウィンドウを C-x 2 で上下2段に分けて、上段をエディタ、下段を M-x shell と打ってシェル(コマンドプロンプト)にしてみる。これでMeadowのみでコーディング、コンパイル、実行までできるようになった。何よりもウィンドウスペースを最小限にできるので、小さいノートパソコンでも、Web上の解説を見ながら勉強しやすいのだ。 下段のシェルで、 &gt gcc a00.c と打って Enter するとコンパイルされる。a00.c はソースファイル名。うまくコンパイルされたら、ソースファイルと同じ階層に、実行ファイルである a.exe ができるので、シェルから実行してみる。 &gt a.exe と打ってEnterするだけ。Meadow は、Java の eclipse などに比べるとコンパクトでお手軽な開発環境だ。メモリの使用量が 1/10 以下ってところがいい。巨大なプログラムを作るわけではないので、お手軽さを優先させたい。 C言語 ANSI C89 Meadow & MinGW GCC 目次はこちら

MinGWのインストール(WindowsXP)

イメージ
130209 改めてMinGWをWIndowsXPにセットアップしたので、現時点の情報に差し替えた。 MinGW は、Windows上で、CとC++のコンパイルをするために必要。C言語のコンパイラーである GCC が含まれている。 他にCygwinというものもあるが、これはUNIX環境という感じでC言語のコンパイル目的には大きすぎる。 インストール手順 http://www.mingw.org/ 上記ページの Navigation > Downloads をクリック。そうすると以下のような画面のあるページが開く。 Installer > mingw-get-inst > mingw-get-inst-20120426 をクリックして行くと次のページが開く。 mingw-get-inst-20120426.exeをクリックしてダウンロードする。662kBと小さいのですぐにダウンロードは完了する。下のアイコンがダウンロードしたminGWのインストーラーになる。 インストーラーをダブルクリックしてインストールする。デフォルトでは C:\MinGW にセットアップされる。ウィザードに沿ってクリックしていくと、途中で以下のような選択画面になる。ここでは C と C++ のコンパイラーが欲しいので、それだけをチェックした。 コマンドプロンプトが立ち上がって、ネットから必要なファイルをダウンロードされ、セットアップされる。数分程度でインストールは完了する。ディスク容量は200MB程度となった。 インストール後はパスの設定をする。 環境変数 Path に ;C:\MinGW\bin を追加して完了。 gcc のバージョンを確認 GCCが、ちゃんとインストールされているか、GCCのバージョンで確認する。コマンドプロンプトや Meadow の shell などから gcc -v と打つとバージョンが表示される。 4.6.2 と確認できたので、インストールは成功している。後は C や C++ のコードをコンパイルして確認する。GCCのバージョンは2013年2月時点では 4.7.2 なので、GCCのみバージョンアップしてもよい。 こちらのページ で手順を

キーボードの記号と読み方

キーボードのキートップ印刷されている記号の名称と読み方。子供と記号の読み方を共有するためのリスト。 記号読み ! exclamation mark イクスクラメーション &quot double quotation ダブルクォート # number sign ナンバーサイン $ dollar ダラー % percent sign パーセント & ampersand アンパサンド ' single quote シングルクォート ( left parenthesis レフト パレンセシス、丸括弧 ) right parenthesis ライト パレンセシス、丸括弧 - hyphen, minus ハイフン、マイナス = equal イコール ~ tilde チルダ ^ circumflex accent,hat サーカムフレックス、ハット | vertical line バーチカルライン ` back apostrophe バック アポストロフィー @ commercial at sign アットマーク + plus プラス * asterisk アステリスク : colon コロン ; semicolon セミコロン [ left square bracket レフト スクエアブラケット、角括弧 ] right square bracket ライト スクエアブラケット、角括弧 { left curly bracket レフト カーリーブラケット、波括弧 } right curly bracket ライト カーリーブラケット、波括弧 &lt less-than sign レス ザン サイン、小なり &gt greater-than sign グレーター ザン サイン、大なり , comma カンマ . period,dot ピリオド、ドット ? question クエッション / slash スラッシュ \ back s

JavaScriptカラー SVG

SVGとthml5のスライダーを使ったサンプル。スライダーでSVGで描かれた絵の色が変わります。Chromeでテストしているけど、他のブラウザだと多くの場合スライダーは見れていないと思う。IEだと何にも見れていない可能性すらある。1年後ぐらいには多くのブラウザで普通に見れるようになっていると思うが、どうなることか。 image/svg+xml kepiyo R G B