2011年4月30日土曜日

Gimpのfile-jpeg-saveのパラメータ

Gimpのプロシージャのfile-jpeg-saveのパラメータが、プロシージャブラウザの説明だけではよくわからなかった。ソースコードから推測すると以下のようになる。

run-mode
INT32
対話式(RUN-INTERACTIVEまたは0)か、非対話式(RUN-NONINTERACTIVEまたは1)か

image
IMAGE
入力画像のID

drawable
DRAWABLE
保存するドロワブルのID

filename
STRING
保存するファイルの名前

raw-filename
STRING
ユーザが入力したファイルの名前(gimp-file-saveの説明から推測)

quality
FLOAT
品質(0から1までの小数)。
なお普通にJPEGを保存しようとするとデフォルトは0.85

smoothing
FLOAT
スムージング(0から1までの小数)。
なお普通にJPEGを保存しようとするとデフォルトは0.00

optimize
INT32
エントロピー符号化パラメータの最適化をするか(1)、しないか(0)。
なお普通にJPEGを保存しようとするとデフォルトは1

progressive
INT32
プログレッシブなJPEGにするか(1)、しないか(0)。
なお普通にJPEGを保存しようとするとデフォルトは0

comment
STRING
画像に対するコメント(文字列)

subsmp
INT32
サブサンプリングのオプション数。2x2 1x1 1x1(最小ファイルサイズ)が0、2x1 1x1 1x1(4:2:2)が1、1x1 1x1 1x1(最高品位)が2、1x2 1x1 1x1が3(jpeg.cから推測)。
なお普通にJPEGを保存しようとするとデフォルトは0

baseline
INT32
ベースラインJPEGを生成するようにする(1)か、しないか(0。ベースラインではないJPEGはすべてのデコーダが読めない)。
たぶん、普通にJPEGを保存するなら1

restart
INT32
リスタートマーカーの頻度(整数)。列方向。0ならリスタートマーカーなし。
なお普通にJPEGを保存しようとするとデフォルトは0

dct
INT32
DCT変換方式。高速整数(1)、整数(0)、浮動小数(2)(Gimpだけでなく、jpeglibのソースからも推測)。
なお普通にJPEGを保存しようとするとデフォルトは0

2011年4月20日水曜日

ProcessingをWindowsにインストールする

ProcessingをWindowsにインストールしてみる。というか、単純にネットからダウンロードして、展開するだけですが。



  1. Processingのダウンロード

    Processingをネットから落とす。

    1. ブラウザでhttp://processing.org/にアクセス

    2. 「Download」というメニューをクリック

    3. 「Windows」という画像がリンクになっているので、クリックして、ダウンロード。自分でJavaをインストールできる人は「Windows [Without Java]」でもOK



  2. ZIPファイルの展開

    ダウンロードしたファイルは、ZIP形式で圧縮されている。これを展開する必要がある。

    1. ダウンロードしたファイルを右クリックし、「すべて展開」を選択

    2. 後は、「次へ」を何回かクリックするだけ

    3. 展開されたフォルダの中に、更にフォルダがある。このフォルダを好きな場所に移動する。



  3. Processingの起動

    1. 展開されたフォルダの中に入っていたフォルダの中に、processing(あるいはprocessing.exeに見えるかも)が入っている。これをダブルクリックするだけ。



2011年4月13日水曜日

TinySchemeをMac OS Xにインストールするときのメモ

GimpのScript-FuはSchemeで書かれたプログラムだ。
このプログラムはTinySchemeで解釈される。
TinyScheme 1.40を単独でMac OS Xに入れるために、makefileとscheme.cを書き換えた。

ついでに、/usr/local/binにtinyschemeという名前の実行型ファイルと、/usr/local/share/tinyschemeにinit.scmをインストールするようにしてみた。

patchファイルにすると、以下のような感じになった。



diff -u -d tinyscheme-1.40/makefile tinyscheme-1.40.kokubo/makefile
--- tinyscheme-1.40/makefile 2011-01-16 16:51:17.000000000 +0900
+++ tinyscheme-1.40.kokubo/makefile 2011-04-13 15:05:37.000000000 +0900
@@ -1,5 +1,12 @@
# Makefile for TinyScheme
# Time-stamp: <2002-06-24 14:13:27 gildea>
+# Time-stamp: <2011-04-13 14:52:30 akokubo>
+
+BINPREFIX = tiny
+BINDEST = /usr/local/bin
+LIBDEST = /usr/local/share/tinyscheme
+INITFILE = init.scm
+BANNER = TinyScheme 1.40

# Windows/2000
#CC = cl -nologo
@@ -30,11 +37,11 @@
AR= ar crs

# Linux
-LD = gcc
-LDFLAGS = -shared
-DEBUG=-g -Wno-char-subscripts -O
-SYS_LIBS= -ldl
-PLATFORM_FEATURES= -DSUN_DL=1
+#LD = gcc
+#LDFLAGS = -shared
+#DEBUG=-g -Wno-char-subscripts -O
+#SYS_LIBS= -ldl
+#PLATFORM_FEATURES= -DSUN_DL=1

# Cygwin
#PLATFORM_FEATURES = -DUSE_STRLWR=0
@@ -50,15 +57,29 @@
#LIBPREFIX = lib
#OUT = -o $@

-FEATURES = $(PLATFORM_FEATURES) -DUSE_DL=1 -DUSE_MATH=0 -DUSE_ASCII_NAMES=0
+# Mac OS X
+LD = gcc
+LDFLAGS = -shared
+DEBUG = -g -Wno-char-subscripts -O
+SYS_LIBS = -ldl
+PLATFORM_FEATURES = -DUSE_STRLWR=1 -DInitFile="\"$(LIBDEST)/$(INITFILE)"\" -Dbanner="\"$(BANNER)"\" -DOSX
+
+FEATURES = $(PLATFORM_FEATURES) -DUSE_DL=1 -DUSE_MATH=1 -DUSE_ASCII_NAMES=0

OBJS = scheme.$(Osuf) dynload.$(Osuf)

LIBTARGET = $(LIBPREFIX)tinyscheme.$(SOsuf)
STATICLIBTARGET = $(LIBPREFIX)tinyscheme.$(LIBsuf)

+
all: $(LIBTARGET) $(STATICLIBTARGET) scheme$(EXE_EXT)

+install: scheme$(EXE_EXT)
+ if [ ! -d $(BINDEST) ]; then mkdir -p $(BINDEST); fi
+ if [ ! -d $(LIBDEST) ]; then mkdir -p $(LIBDEST); fi
+ install -s scheme$(EXE_EXT) $(BINDEST)/$(BINPREFIX)scheme$(EXE_EXT)
+ cp $(INITFILE) $(LIBDEST)
+
%.$(Osuf): %.c
$(CC) -I. -c $(DEBUG) $(FEATURES) $(DL_FLAGS) $<

diff -u -d tinyscheme-1.40/scheme.c tinyscheme-1.40.kokubo/scheme.c
--- tinyscheme-1.40/scheme.c 2011-01-17 11:02:36.000000000 +0900
+++ tinyscheme-1.40.kokubo/scheme.c 2011-04-13 12:55:43.000000000 +0900
@@ -62,7 +62,9 @@
* Basic memory allocation units
*/

+#ifndef banner
#define banner "TinyScheme 1.39"
+#endif

#include <string.h>
#include <stdlib.h>