*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*

<C#>
「画像をスクロールしたり、スピンボタンで回転させて表示<フォーム上での扱い方>」のコード No.2


*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*

.






元のページ


元ページ「<C# > 画像をスクロールしたり、スピンボタンで回転させて表示<フォーム上での扱い方>」
http://note.chiebukuro.yahoo.co.jp/detail/n157667

記述量上限の制限で、ページを分けて記述しています。






本ページの前のページ


「画像をスクロールしたり、スピンボタンで回転させて表示<フォーム上での扱い方>」のコード No.1
http://note.chiebukuro.yahoo.co.jp/detail/n157668

記述量上限の制限で、ページを分けて記述しています。









本ページの次のページ


「画像をスクロールしたり、スピンボタンで回転させて表示<フォーム上での扱い方>」のコード No.3
http://note.chiebukuro.yahoo.co.jp/detail/n157935

 

記述量上限の制限で、ページを分けて記述しています。










はじめに


元ページの「<C#> 画像をスクロールしたり、スピンボタンで回転させて表示<フォーム上での扱い方>」におけるコードをここに記述します。








回転処理用グラフィッククラスのコード




using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


// 画像をスクロールしたり、スピンボタンで回転させて表示。背景部画像有り。
// <フォーム上での扱い方>
namespace RotateAndMoveImageBySpinButton
{
    // ************************************
    // 回転処理用グラフィッククラス
    //
    // 画像の回転を行なうクラスです。
    // ************************************
    public partial class GraphicImage
    {


        // ==============
        // 画像回転用メソッド <背景部有り>
        //  --- 画像の回転を行ないます。なお、本メソッドでは、背景部も作成されま
        //      す。背景部とは、対象画像の周りの部分です。すなわち、本メソッドで
        //      は、まず白紙(実際は指定色)のイメージ画像を生成して、その上に回
        //      転した対象画像を重ねます。
        // 第1引数: 描画対象の画像
        // 第2引数: 描画対象画像の配置位置x座標
        // 第3引数: 描画対象画像の配置位置y座標
        // 第4引数: 回転のために指定する角度(単位は、ラジアン)
        // 第5引数: 背景色
        // 第6引数: 背景横幅
        // 第7引数: 背景縦幅
        // 戻り値: 本メソッドで作成されたズーム後の画像
        public System.Drawing.Bitmap RotateImage(
            System.Drawing.Image ImageData,
            int PositionX,   // x座標
            int PositionY,   // y座標
            double RotateAngle,  // 回転のために指定する角度
            System.Drawing.Brush BackgroundColor,    // 背景色
            int BackgroundWidth, // 背景横幅
            int BackgroundHeight) // 背景縦幅
        {

            // 白紙のイメージ画像を生成
            System.Drawing.Bitmap Background_Img = CreateImage(
                BackgroundWidth,      // 横幅
                BackgroundHeight,     // 縦幅
                BackgroundColor);     // 背景色


            // 描画を行うグラフィックスクラスを生成(及び、背景画像の設定)
            System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(Background_Img);


            // 回転
            RotateImage(
                ref gr,
                RotateAngle,
                ImageData,
                PositionX,
                PositionY);


            // 編集した画像を返却
            return Background_Img;

        }

 

        // ==============
        // 画像回転用メソッド <背景部画像を擬似的に無くすため透明化>
        //  --- 画像の回転を行ないます。なお、本メソッドでは、背景部も作成されま
        //      す。背景部とは、対象画像の周りの部分です。すなわち、本メソッドで
        //      は、まず白紙のイメージ画像を生成して、その上に回転した対象画像を
        //      重ねます。ただし、本メソッドでは、背景部の色を透明色とします。す
        //      なわち、背景部は一応存在そますが、透明なので、擬似的に無いのに等
        //      しいです。
        // 第1引数: 描画対象の画像
        // 第2引数: 描画対象画像の配置位置x座標
        // 第3引数: 描画対象画像の配置位置y座標
        // 第4引数: 回転のために指定する角度(単位は、ラジアン)
        // 第5引数: 背景横幅
        // 第6引数: 背景縦幅
        // 戻り値: 本メソッドで作成されたズーム後の画像
        public System.Drawing.Bitmap RotateImage(
            System.Drawing.Image ImageData,
            int PositionX,   // x座標
            int PositionY,   // y座標
            double RotateAngle,  // 回転のために指定する角度
            int BackgroundWidth, // 背景横幅
            int BackgroundHeight) // 背景縦幅
        {


            // 透明のイメージ画像を生成
            System.Drawing.Bitmap Background_Img = new System.Drawing.Bitmap(
                BackgroundWidth,
                BackgroundHeight);


            // 描画を行うグラフィックスクラスを生成(及び、背景画像の設定)
            System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(Background_Img);


            // 回転
            RotateImage(
                ref gr,
                RotateAngle,
                ImageData,
                PositionX,
                PositionY);


            // 編集した画像を返却
            return Background_Img;

        }

 

        // ==============
        // 白紙のイメージ画像を生成するメソッド
        // 第1引数: 画像の横幅
        // 第2引数: 画像の縦幅
        // 第3引数: 背景色
        // 戻り値: 本メソッドで作成された画像
        public System.Drawing.Bitmap CreateImage(
            int Image_Width,
            int Image_Height,
            System.Drawing.Brush Background_Color)
        {

            // イメージ画像の生成
            System.Drawing.Bitmap img = new System.Drawing.Bitmap(Image_Width, Image_Height);


            // 描画を行うグラフィックスクラスを生成
            System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(img);


            // 白で塗りつぶし
            gr.FillRectangle(Background_Color, 0, 0, img.Width, img.Height);


            // 作成した画像を返却
            return img;

        }


    }
}



さいごに


本ページの内容説明については、元ページを参照して下さい。