
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ランキング
-
【EXCEL VBA】ダブルクリックで...
-
C++ 画像処理
-
画像のビット数を変更する方法
-
イメージマップで画像変え
-
生成AI画像について
-
UWCSでのランダムクリック入力...
-
同じ画像を複数回表示させる
-
文字化けでしょうか?
-
UWSCの画像認識と条件分岐につ...
-
画像が分割されて切り替わる、...
-
ホームページをつくっていて、...
-
畳み込みニューラルネットワー...
-
「using Windows」でエラーが出る
-
画像のピクセルデータの取得
-
PowerPoint VBA で画像の鮮明度...
-
uwscについて質問です。
-
Excelで画像クリックのアテンシ...
-
OpenCVによる面積算出
-
背景画像の繰り返しについて
-
エクセルで、日付を入力すると...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
背景画像の繰り返しについて
-
EXCEL VBA 複数のImageコントロ...
-
【EXCEL VBA】ダブルクリックで...
-
uwcs のマクロで画像認識をして...
-
UWSCの画像認識と条件分岐につ...
-
UWSCでループ処理がうまくいき...
-
vb.net 画像の透過について
-
「using Windows」でエラーが出る
-
Excel ユーザーフォームで表示...
-
UWSC 画像判定と条件分岐について
-
uwscの画像認識に失敗します。
-
画像のビット数を変更する方法
-
jqueryスライダーを2段でスライ...
-
画像処理したBitmapをピクチャ...
-
UWSCの色判定
-
UWSCについて
-
スマホでサイトの画像を長押し→...
-
VBAのユーザーフォームのイメー...
-
gif 画像上の ボタンに リン...
-
画像のピクセルデータの取得
おすすめ情報