![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
C#の課題で画像のトリミング処理を行いたいのですが、
どういった処理を行えばいいのか分かりません。
ネットでもいろいろ調べてみたのですが、
Picturebox上に表示させる画像のトリミング方法は見つかっても、
画像そのものにトリミング処理を行う方法は載っていませんでした。
上記のソースを参考にして、
Pictureboxをプリントスクリーンで撮って保存するやり方も試してみたのですが、Pictureboxよりも大きな画像(パソコンの解像度ぎりぎり)の処理で上手くいきません。
C#のソースプログラムでは
画像そのものに直接手を加える形でのトリミング処理は出来ないのでしょうか?
No.1ベストアンサー
- 回答日時:
こんばんは。
元画像のトリミング領域を元に、トリミングされた画像を作り出して、ピクチャボックスに設定するといった具合ではないでしょうか。
例えば、元画像が640x480で、(320, 240, 100, 100)の領域を切り取りたければ、新しい画像を100x100で作成して、元画像の領域(320, 240, 100, 100)を、新しい画像の領域(0, 0, 100, 100)に向かって複写します。
以後、新しい画像の方をピクチャボックスに設定します。
以下ではディスプレイのスクリーンショットを撮って、(320, 240, 100, 100)の領域を切り抜きます。参考程度で。
private void Form1_Load(object sender, EventArgs e)
{
//スクリーンショット用の画像を作成(元となる絵、ファイルから読み込んで来ても良い)
Bitmap screenShot =
new Bitmap(Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height,
System.Drawing.Imaging.PixelFormat.Format32bppRgb);
//スクリーンショットを撮る
Graphics gfxScreen = Graphics.FromImage(screenShot);
gfxScreen.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
gfxScreen.Dispose();
//トリミング画像を作成
Bitmap trim = new Bitmap(100, 100, System.Drawing.Imaging.PixelFormat.Format32bppRgb);
Graphics gfxTrim = Graphics.FromImage(trim);
//スクリーンショットの領域(320, 240, 100, 100)をトリミング画像の領域(0, 0, 100, 100)に複写
gfxTrim.DrawImage(screenShot, 0, 0, new Rectangle(320, 240, trim.Width, trim.Height), System.Drawing.GraphicsUnit.Pixel);
gfxTrim.Dispose();
//トリミング画像をピクチャボックスに設定する
this.pictureBox1.Image = trim;
this.pictureBox1.Invalidate();
}
遅くなりまして大変申し訳ございません。
いただいたデータを参考になんとかほしい形で図形のトリミングが出来るようになりました。
画像処理に関するソースは検索してもあまりヒットしないので、本当に助かりました。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS トリミングで表示した画像をクリックで元どおりにしたい 3 2022/12/16 18:49
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- デスクトップパソコン Windows11でスクショする方法がわかりません。 調べましたが、どうもWindowsキーがあるキ 8 2022/06/05 05:37
- フリーソフト 倍率自動調整して全画面表示できるフリーの画像ビューアー 1 2023/08/24 10:55
- 一眼レフカメラ 新品の標準レンズ 画角の中央当たりにゴミ?が写る。対処法は? 9 2022/09/12 08:27
- Photoshop(フォトショップ) ペイントで丸くトリミングして保存って出来ないのでしょうか? 9 2022/10/03 14:18
- Excel(エクセル) エクセルVBA 特殊フォルダのパスを取得の方法を教えてください 3 2022/09/02 13:14
- Photoshop(フォトショップ) 下記の操作のみでAdobeの画像ソフトを使っていますが他によいものがあれば 1 2022/08/03 14:24
- その他(プログラミング・Web制作) 監視カメラを水平につないでパノラマの映像を作りたい 1 2022/09/06 15:26
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTMLでこの画像を表示したいで...
-
同じ画像を複数回表示させる
-
背景画像の繰り返しについて
-
jpgファイルの内容を比較したい...
-
Visual Basic : ImageListの画...
-
決められた4つの座標をランダム...
-
UWSC「画像が無い場合」
-
UWSCを使った画像認証マク...
-
UWSCの色判定
-
EXCEL VBA 複数のImageコントロ...
-
ImageMagickでgif画像の一部が...
-
ツイッターの画像が一部表示さ...
-
UWSC 画像判定と条件分岐について
-
C# 画像のトリミング処理
-
画像比較
-
C#で画像を他の画像に貼り付け...
-
uwsc画像認識のあいまい判定に...
-
uwscについて、同一の画像(仮...
-
「PC Helpsoft Driver Updated...
-
「ご処理進めて頂きますようお...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【EXCEL VBA】ダブルクリックで...
-
背景画像の繰り返しについて
-
EXCEL VBA 複数のImageコントロ...
-
「using Windows」でエラーが出る
-
jqueryスライダーを2段でスライ...
-
画像のピクセルデータの取得
-
ImageMagickでgif画像の一部が...
-
Excel ユーザーフォームで表示...
-
uwcs のマクロで画像認識をして...
-
uwscの画像認識に失敗します。
-
vb.net 画像の透過について
-
VBA シート毎に画像挿入
-
UWSC 画像判定と条件分岐について
-
UWSC「画像が無い場合」
-
gif 画像上の ボタンに リン...
-
Pythonでgif画像が上手く作れない
-
VBAのユーザーフォームのイメー...
-
UWSC 画像認識で条件分岐
-
パネルに画像
-
【WPF】画像の切り替え
おすすめ情報