わんくまライブラリ Wankuma.Drawing.Imageクラス Version1
2005/01/21
この文書はVisual Studio 2003(.NET1.1)をベースに記述されています。それ以降のバージョンや、あなたが読んでいる時点では変更されている可能性があります。
またバージョンアップされている場合にはなんらかかの不具合を含んでいる可能性があります。
新バージョンへ
Wankuma.Drawing.Image2d.htm
ドキュメントへ
Wankuma.Drawing.Image1d.htm
利用規約へ
../kiyaku.htm
using System; using System.IO; using img = System.Drawing.Image; namespace Wankuma.Drawing { /// <SUMMARY> /// Image の概要の説明です。 /// </SUMMARY> public class Image { /// <SUMMARY> /// ファイルから画像を読み取ります。 /// ファイルをロックしません。 /// </SUMMARY> /// <PARAM name="画像ファイル名">取得するファイル名</PARAM> /// <RETURNS>取得したイメージ</RETURNS> public static img FromFile(string 画像ファイル名) { //画像の読み込み using ( FileStream fs = new FileStream(画像ファイル名, FileMode.Open, FileAccess.Read) ) { return img.FromStream(fs); } } /// <SUMMARY> /// ファイルから画像サムネイルを読み取ります。 /// サイズは幅を指定すればその幅で変換します。 /// </SUMMARY> /// <PARAM name="画像ファイル名">取得するファイル名</PARAM> /// <PARAM name="Width">幅</PARAM> /// <RETURNS>取得したイメージ</RETURNS> public static img FromFileThumbnailWidth(string 画像ファイル名, int Width) { return FromFileThumbnail(画像ファイル名, Width, 0 ); } /// <SUMMARY> /// ファイルから画像サムネイルを読み取ります。 /// サイズはを指定すればその高さで変換します。 /// </SUMMARY> /// <PARAM name="画像ファイル名">取得するファイル名</PARAM> /// <PARAM name="Height">高さ</PARAM> /// <RETURNS>取得したイメージ</RETURNS> public static img FromFileThumbnailHeight(string 画像ファイル名, int Height) { return FromFileThumbnail(画像ファイル名, 0, Height ); } /// <SUMMARY> /// ファイルから画像サムネイルを読み取ります。 /// サイズは幅を指定すればその幅で変換します。 /// </SUMMARY> /// <PARAM name="画像ファイル名">取得するファイル名</PARAM> /// <PARAM name="Width">幅</PARAM> /// <PARAM name="Height">高さ</PARAM> /// <RETURNS>取得したイメージ</RETURNS> public static img FromFileThumbnail(string 画像ファイル名, int Width, int Height) { System.Drawing.Bitmap bmp; using ( img 元画像 = FromFile(画像ファイル名) ) { //元画像からの縮尺を取得する float WidthPer = 0; float HeightPer = 0; if ( Width != 0 ) { WidthPer = (float)Width / (float)元画像.Width; } if ( Height != 0 ) { HeightPer = (float)Height / (float)元画像.Height; } //縮尺を採用する。 //片方しか指定がないときには小さい方を採用 float Percent; if ( Width == 0 ) { Percent = HeightPer; } else if ( Height == 0 ) { Percent = WidthPer; } else { Percent = WidthPer > HeightPer ? HeightPer : WidthPer; } bmp = new System.Drawing.Bitmap((int)(元画像.Width * Percent), (int)(元画像.Height * Percent) ); using ( System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp) ) { //実際に描画する g.DrawImage( 元画像, 0, 0, 元画像.Width * Percent, 元画像.Height * Percent ); } } return bmp; } } }