中の技術日誌
 ホーム / 上へ

わんくまライブラリ 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 &gt; 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;
  }
 
 }
}

勉強会: 05/18 大阪 登録受付中

中の技術日誌
コンテンツ
わんくま同盟
わんくま同盟
わんくま同盟
広告
バナー
MVP LOGO
MSMVP Visual C# Since 2004/04-2007/03
MCP LOGO
070-316
姉妹サイト
姉妹サイト:じゃんぬのC#, VB.NET 入門
じゃんぬの
C#, VB.NET 入門
検索
Google

ブログ本家
広告