■ 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 自動検出は、限定的な状況でしか成功しません。