■ ppmscramble version 0.8086
画像にかける、可逆スクランブルフィルタです。
画像の一部または全体を MxN の小矩形で分割し、
小矩形の中を鏡像処理したり、小矩形同士を入れ換えたりします。
● インストール
netpbm が必要です。
ppm.h や libppm の場所は Makefile を編集してね。
$ make
● 使い方
下のマニュアルモドキを見てね。
● バグレポートなどは
candy at kgc dot co dot jp まで
● 変更履歴
0.8086
- 初期リリース
/*-
* Copyright (c) 2000, 2001, 2002, 2003, 2004 candy
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: README,v 1.1 2004/08/06 03:40:12 candy Exp $
*/
●マニュアル
NAME
ppmscramble -- 可逆スクランブルフィルタ
SYNOPSIS
ppmscramble [-ar][-g WXxWY+OX+OY][-d DXxDY][-c command] [ppm]
DESCRIPTION
ppmscramble は PPM 画像に可逆なモザイク状のフィルタをかけます。
画像を DX x DY のサブ領域に分割し、指定された方法で処理します。
-g WXxWY+OX+OY
フィルタをかける領域を指定します。
幅x高さ+X座標+Y座標
デフォルトは画像全体。
-d [DX][xDY]
サブ領域の大きさを指定します。
幅x高さ
幅
x高さ
デフォルトは 8x8
-a
色が反転された矩形を検出して、領域とします。
-g は無視されます。
-aa
自動検出の基準の曲線を stderr に出力します。
gnuplot で
plot "" using 1 with lines, "" using 2 with lines
とかやると視覚化できる。
-r
領域の画素値を反転します。
-c command...
フィルタ処理の種類を指定します。
M.N
のように二つの数字を `.' でつなげて指定します。
M が処理内容、N がオプションパラメータです。
.N は省略可能(デフォルト 0)
スペースかカンマ(,)で区切り、複数指定することもできます。
処理は指定された順序で行なわれます。
各処理で、領域とサブ領域は共通です。
デフォルトは 0。
command:
0 (flipvh)
サブ領域内を水平・垂直方向に反転します。
サブ領域が Nx1 なら、幅 N ピクセルごとに左右反転します。
サブ領域が 1xN なら、幅 N ピクセルごとに上下反転します。
サブ領域が 1x1 なら、何も起きません。
1 (spiral)
各サブ領域に対して螺旋状に順番をつけ、
先頭と最後尾から互いに入れ換えます。
螺旋を開始する位置、螺旋の回転方向により、
8 種類のバリエーションがありますが、
それは 0 〜 7 のオプションパラメータで指定します。
EXAMPLE
画像全体を flipvh します。
$ ppmscramble foo.ppm
画像の一部((10, 20)-(109, 219) の矩形)を flipvh します。
$ ppmscramble -g 100x200+10+20 foo.ppm
大きいサブ領域を使用します。
$ ppmscramble -d 16x16 foo.ppm
全体の色を反転します。スクランブルしません。
$ ppmscramble -r -d 1x1 foo.ppm
一部を flipvh して、spiral して、色反転します。
$ ppmscramble -r -g 100x200+10+20 -c 0,1.1 foo.ppm
色反転された矩形領域を自動検出し、元に戻します。
$ ppmscramble -ar d 1x1 foo.ppm
SEE ALSO
netpbm
BUGS
自動検出は、限定的な状況でしか成功しません。