なでしこでドラグアンドドロップで画像リサイズするexeを作ってみた

* vbscriptで頑張るより良さそう。
* [日本語プログラミング語は「なでしこ」より「プロデル」の方が良い - Qiita](http://qiita.com/aratech/items/158e3b18610f809998e8)とあるが`.NET Framework 4`が必要なため配布が難しい。
    * [日本語プログラミング言語「プロデル」](http://rdr.utopiat.net/)
* コンパイルしたものを2000やXPでそのまま動いた。

## なでしこのダウンロード

* [ダウンロード](http://nadesi.com/top/index.php?%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89)

## 起動

* nakopad.exe
* [なでしこ命令一覧～50音順](http://nadesi.com/doc/cmd-kana.htm)
* [なでしこ命令一覧～機能順](http://nadesi.com/doc/cmd-func.htm)

![hoge.png](https://qiita-image-store.s3.amazonaws.com/0/25728/4eb164b5-874a-d679-2e09-7f1a8641dd7f.png)

```
コンピューター名取得してhogeに代入。
hogeを言う。
```

* `F5`キーで実行。

## exeの作成

![hogeexe.png](https://qiita-image-store.s3.amazonaws.com/0/25728/e36ca9d2-d906-d05c-dafd-18a0fc8d92f4.png)

![hoge2.png](https://qiita-image-store.s3.amazonaws.com/0/25728/f3fbcb1f-c0b1-74d9-1589-3eb275a0f9bc.png)

![nako.png](https://qiita-image-store.s3.amazonaws.com/0/25728/c52905e5-130e-45fb-b9d0-632a5d66db99.png)

![plug.png](https://qiita-image-store.s3.amazonaws.com/0/25728/a7b48213-a588-b22f-ed29-484ef54901cd.png)

* exeが2MB, plug-ins内が1MBほど。

----

## 画像のリサイズ

* [画像リサイズ - なでしこ リファレンス](http://nadesi.com/man/index.php?%E7%94%BB%E5%83%8F%E3%83%AA%E3%82%B5%E3%82%A4%E3%82%BA)

```
表示用イメージとはイメージ。
表示用イメージの画像は、「{コマンドライン\1}」
表示用イメージを1366,800で画像リサイズ。 
表示用イメージを「{コマンドライン\1}-resized.png」に画像保存。
終わる。
```

## 正規表現

* [正規表現マッチ - なでしこ リファレンス](
http://nadesi.com/man/index.php?%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE%E3%83%9E%E3%83%83%E3%83%81)

```ruby:
「02:50:30」を「(\d+):(\d+):(\d+)」で正規表現マッチ
抽出文字列を表示。
```

```ruby:
「02:50:30」を「(\d+):(\d+):(\d+)」で正規表現マッチ
抽出文字列\0を表示。
```

```ruby:
「02:50:30」を「(\d+):(\d+):(\d+)」で正規表現マッチ
抽出文字列\1を表示。
抽出文字列\2を表示。
```

## ドラグアンドドロップ

* [ファイルドロップサンプル - mrのなでしこ学習帳 - なでしこ学習帳＠はてな](http://nadesiko.g.hatena.ne.jp/mr-80b/20060304/p1)

```ruby:ドロップ
母艦のファイルドロップ許可はオン
そのファイルドロップされた時は～
        ファイルは、母艦のドロップファイル。
        ファイルを言う。
```

```ruby:リサイズ
表示用イメージとはイメージ。

母艦のファイルドロップ許可はオン
そのファイルドロップされた時は～
        ファイルは、母艦のドロップファイル。
        表示用イメージの画像は、「｛ファイル｝」
        表示用イメージを1366,800で画像リサイズ。
        表示用イメージを「｛ファイル｝」に画像保存。
        #
        「リサイズ完了」と言う。
```

```ruby:再圧縮防止
表示用イメージとはイメージ。

母艦のファイルドロップ許可はオン
そのファイルドロップされた時は～
        ファイルは、母艦のドロップファイル。
        表示用イメージの画像は、「｛ファイル｝」
        もし、表示用イメージの高さが「800」ならば
            「すでにリサイズ済みです」と言う。
        違えば
            表示用イメージを1366,800で画像リサイズ。
            表示用イメージを「｛ファイル｝」に画像保存。
            「リサイズ完了」と言う。
```

```ruby:変数
width = 1366
height = 800

表示用イメージとはイメージ。
母艦のファイルドロップ許可はオン

「リサイズしたい画像をドラッグアンドドロップしてください」と表示。

そのファイルドロップされた時は～
        ファイルは、母艦のドロップファイル。
        表示用イメージの画像は、「｛ファイル｝」
        もし、表示用イメージの高さが「{height}」ならば
            「すでにリサイズ済みです」と言う。
        違えば
            表示用イメージをwidth,heightで画像リサイズ。
            表示用イメージを「｛ファイル｝」に画像保存。
            「リサイズ完了」と言う。
        表示用イメージの画像は、「」
```

```ruby:最終版(引数を取る)
width  = 「｛コマンドライン\1｝」
height = 「｛コマンドライン\2｝」
もし、widthが空ならば
    width  = 1366
もし、heightが空ならば
    height = 800

母艦のタイトルは「画像リサイズ」

表示用イメージとはイメージ。
母艦のファイルドロップ許可はオン

「{width}x{height}にリサイズします。{改行}{改行}リサイズしたい画像をドラッグアンドドロップしてください」と表示。

そのファイルドロップされた時は～
        ファイルは、母艦のドロップファイル。
        表示用イメージの画像は、「｛ファイル｝」
        もし、表示用イメージの高さが「{height}」かつ、表示用イメージの幅が「{width}」ならば
            「すでにリサイズ済みです」と言う。
        違えば
            表示用イメージをwidth,heightで画像リサイズ。
            表示用イメージを「｛ファイル｝」に画像保存。
            「リサイズ完了」と言う。
        表示用イメージの画像は、「」
```