Windows システムは PowerShell を使用して画像を指定されたサイズにトリミングします

目次

.ps1 ファイルを作成して実行する

コードの説明 (重要ではないため、スキップすることをお勧めします)

クロップボックスのサイズと位置を設定する

エラーを報告する

要約する 


PowerShell を使用して画像をトリミングし、元の画像の 120 ~ 290 ピクセルを切り取ります。

.ps1 ファイルを作成して実行する

新しいテキストドキュメントを作成し、次の内容を入力します。

# 指定原始图片路径和输出路径
$sourcePath = "C:\path\to\original\image.jpg"
$outputPath = "C:\path\to\output\image.jpg"

# 加载System.Drawing命名空间
Add-Type -AssemblyName System.Drawing

# 打开原始图片
$image = [System.Drawing.Image]::FromFile($sourcePath)

# 设置裁剪框的大小和位置
$cropRectangle = New-Object System.Drawing.Rectangle(120, 0, 170, $image.Height)

# 创建一个新的Bitmap并把裁剪后的部分绘制到Bitmap中
$croppedImage = New-Object System.Drawing.Bitmap($cropRectangle.Width, $cropRectangle.Height)
$graphics = [System.Drawing.Graphics]::FromImage($croppedImage)
$graphics.DrawImage($image, 0, 0, $cropRectangle, [System.Drawing.GraphicsUnit]::Pixel)

# 保存裁剪后的图片
$croppedImage.Save($outputPath)

# 释放资源
$image.Dispose()
$croppedImage.Dispose()
$graphics.Dispose()

状況に応じてパスを変更します。コード内の「$source」Path と「$outputPath」は、それぞれ元の画像のパスとスクリーンショット後の画像のパスを表し、要件に応じて設定できます。

「111.ps1」のように、接尾辞「.ps1」が付いたファイルとして保存します。powershellを開き、「111.ps1」のパス下に「.\111.ps1」と入力してファイルを実行します。

コードの説明 (重要ではないため、スキップすることをお勧めします)

GPT による関連コードの説明:

もちろん、PowerShell コードの各行が何を行うのかについて喜んで説明させていただきます。

```
# オリジナル画像のパスと出力パスを指定
$sourcePath = "C:\path\to\original\image.jpg"
$outputPath = "C:\path\to\output\image.jpg"

# System.Drawing 名前空間をロードします。
Add-Type -AssemblyName System.Drawing
```
これらの 2 行は、元のイメージのパスと出力パスを指定し、System.Drawing 名前空間をインポートするために使用されます。後で、この名前空間のクラスとメソッドを画像処理に使用します。

```
# 元の画像を開きます
$image = [System.Drawing.Image]::FromFile($sourcePath)
```
System.Drawing.Image クラスの `FromFile()` メソッドを呼び出すことで、次のことができます。元の画像を開き、それを変数 `$image` に割り当てます。

```
# クロップ ボックスのサイズと位置を設定します
$cropRectangle = New-Object System.Drawing.Rectangle(120, 0, 170, $image.Height) `` `
この
コード行は、クロップ ボックスのサイズと位置を設定します。クロップボックス。この例では、元の画像から幅 170 ピクセル、高さは元の画像と一致し、位置は 120 ピクセルから始まる部分を切り抜きます。このクロップボックスは「System.Drawing.Rectangle」クラスを使用して作成されます。

```
# 新しいビットマップを作成し、トリミングされた部分をビットマップに描画します
$croppedImage = New-Object System.Drawing.Bitmap($cropRectangle.Width, $cropRectangle.Height)
$graphics = [System.Drawing.Graphics ]:: FromImage($croppedImage)
$graphics.DrawImage($image, 0, 0, $cropRectangle, [System.Drawing.GraphicsUnit]::Pixel) ```
これらの
3 行は、新しいビットマップを作成し、トリミングされた部分を描画するために使用されます。ビットマップに取り込みます。`System.Drawing.Bitmap` クラスを通じて新しい Bitmap オブジェクトを作成し、それを `$croppedImage` 変数に割り当てます。次に、`System.Drawing.Graphics` クラスを使用して、ビットマップから新しい Graphics オブジェクトを作成し、それを `$graphics` 変数に割り当てます。最後に、`$graphics.DrawImage()` メソッドを使用して、元の画像内の指定された領域 (つまり、トリミング ボックス) を新しいビットマップに描画します。

```
# トリミングされた画像を保存
$croppedImage.Save($outputPath)

# リソースの解放
$image.Dispose()
$croppedImage.Dispose()
$graphics.Dispose()
```
これらの 3 行のコードは、トリミングされた画像を保存し、占有されているすべてのリソースを解放するために使用されます。`$croppedImage.Save()` メソッドを使用して、トリミングされた画像を指定された出力パスに保存します。最後に、`Dispose()` メソッドを使用して、`$image`、`$croppedImage`、および `$graphics` オブジェクトによって使用されるすべてのリソースを解放します。

クロップボックスのサイズと位置を設定する

$cropRectangle = New-Object System.Drawing.Rectangle(`X` , `Y` ,`Width`, `Height` ) 

`New-Object System.Drawing.Rectangle` クラスを使用すると、トリミングする必要がある画像内の領域を指定する長方形オブジェクトを作成できます。次の 4 つのパラメータがあります。

1. 'X' パラメータは、長方形の左上隅の位置の x 座標を示します。
2. 'Y' パラメータは、長方形の左上隅の位置の y 座標を示します。
3. 「Width」パラメータは、長方形の幅を示します。
4. 「Height」パラメータは、長方形の高さを示します。

したがって、元の画像の左上隅の 150x150 ピクセル部分をトリミングする場合は、次のようにクロップ ボックスのサイズと位置を設定できます。

```
$cropRectangle = New-Object System.Drawing.Rectangle(0, 0, 150, 150)
```

400x300 ピクセルの画像を元の画像の右側から 200 ピクセルずつ切り抜きたい場合は、次のように設定できます。

```
$cropRectangle = New-Object System.Drawing.Rectangle($image.Width - 200 - 400, 0, 400, 300)
```

このうち、`$image.Width`は元の画像の幅で、右からのオフセットを計算し、クロップボックスの幅と高さを設定します。つまり、実際の状況に応じて、トリミングボックスの位置とサイズをカスタマイズできます。

 $image.Width は元の画像の幅を表し、$image.Height は元の画像の高さを表します。これらの変数は画像サイズの設定にも使用できます。

例えば:

幅 350 ピクセル、高さ 260 ピクセルの元の画像があります。時間部分を切り抜きたい場合は、まずこの領域のピクセルを事前に選択する必要があります。

この領域のピクセルは (153,55) から始まり、高さは 33、幅は 94 です。

# クロップ ボックスのサイズと位置を設定します
$cropRectangle = New-Object System.Drawing.Rectangle(153, 55, 94, 33)

スクリーンショットの効果:

 画像の幅と高さの単位はピクセルであり、「Drawing」などのソフトウェアを使用して表示できます。

エラーを報告する

PowerShell のコマンド実行、一般的なエラー、および処理については、以下を参照してください。

Windows システム PowerShell 実行コマンドの一般的なエラーと処理 - Weixin_56337147 のブログ - CSDN ブログ

要約する 

.ps1 ファイルを作成して実行し、画像のトリミング機能を実現します。

おすすめ

転載: blog.csdn.net/weixin_56337147/article/details/130753933