そろそろ冬休みです。


第16回投稿は
JPEGの品質について。


PhotoShop等の画像関連ツールでJPEG保存をすると

保存時に品質を聞いてきます。

これは圧縮率の問題で、当然ながら

高品質になればなるほど

ファイルサイズが大きくなります。


以前の記事 で、

Image::Save を使って保存していましたが

このとき、自動設定では

品質最低で保存されます。


VC++の仕様では、品質指定は0~100の101段階で指定できます。

自動設定では0になってるので

品質指定をするには

EncoderParameterEncoder::Quality を設定するのですが

プログラム例 はMSDNに書いてあるので省きますw



先程、1度書いた内容が消えてしまいました・・・。


第15回投稿は
ブレークポイントについて。


デバッグ実行するとき、プログラム中に
ブレークポイントを作っておくと
そこでプログラムが止まってくれて
変数の値等を見ることができる(クイックウォッチ)。


でも、止めたい箇所がfor文の中だったり
いろんなイベントから呼んでたりすると
いちいち止まんな!
ってなるので
条件を付加する。


1コード内の止めたい個所で右クリック
ブレークポイント→ブレークポイントの挿入
(コードの左にが表示される)

2を右クリック→条件

3条件を書く(『if(i==8)』とか)

4デバック実行する

第14回投稿は

フォルダパスの取得方法。


パスの取得さえしてしまえば、


if(!System::IO::Directory::Exists (this->textBox1->Text)) return;//存在確認
cli::array<String^>^ files;

//フォルダ内のテキストファイルを取得
files = Directory::GetFiles (this->textBox1->Text,"*.txt",SearchOption::TopDirectoryOnly);


とかなんとかやって、フォルダ以下のファイルが処理できるわけですが

フォルダのパスの取得ってどうしよう?


【方法1】手入力

ユーザがコピペすれば、それで済む話ですからね。


【方法2】ドラッグ&ドロップ

コントロール(フォームまたはTextBox)のArrowDropをtrueにして

DragDropイベントDragEnterイベント を利用すればできます。

コンソールだったり、起動時の利用なら

exeにドラッグ&ドロップすると

main関数の引数のargvに入ります。


【方法3】フォルダ選択画面から選択する

FolderBrowserDialog を利用します。

ファイル選択と同じで、こういうものが用意されてるんですね。

便利ですね。


結論的には、全部できると便利w