0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PowerShellを利用して大容量GIFファイルを一括圧縮する方法

Posted at

GIFアニメーションは便利ですが、ファイルサイズが大きくなりがちです。特にDiscordなどでファイルサイズ制限に引っかかることも多いですよね。今回は、PowerShellを使って同じディレクトリにある大容量のGIFファイルを一括で圧縮する方法を紹介します。

必要な準備

この方法を使うには、ImageMagickが必要です。インストールは以下のコマンドで簡単にできます:

choco install imagemagick.app -y

※Chocolateyがインストールされていない場合は、ImageMagickの公式サイトからダウンロードしてインストールすることもできます。

一括圧縮コマンド

以下のコマンドをPowerShellで実行すると、現在のディレクトリにある2MB以上のGIFファイルを自動的に圧縮します:

Get-ChildItem -File *.gif | Where-Object { $_.Length -gt 2MB } | ForEach-Object -Begin { $total = @($input).Count; $current = 0 } -Process { $current++; Write-Host "処理中: $($_.Name) ($current/$total) - 元サイズ: $([math]::Round($_.Length/1MB, 2))MB"; magick convert $_.FullName -coalesce -colors 4 -quality 30 -layers optimize -scale 20% $_.FullName; Write-Host "完了: $($_.Name) - 圧縮後サイズ: $([math]::Round((Get-Item $_.FullName).Length/1MB, 2))MB `n" -ForegroundColor Green }

コマンドの説明

このコマンドは以下のことを行います:

  1. 現在のディレクトリ内の2MB以上のGIFファイルを検索(*.gif
  2. 各ファイルに対して以下の圧縮処理を実行:
    • 色数を4色に削減
    • 品質を30%に設定
    • フレーム間の最適化
    • サイズを20%に縮小
  3. 進捗状況を表示:
    • 処理中のファイル名
    • 処理の進捗(例:2/5)
    • 圧縮前後のファイルサイズ

カスタマイズ方法

圧縮設定を調整したい場合は、以下のパラメータを変更できます:

  • -colors 4 : 色数(数字を大きくすると品質が良くなる)
  • -quality 30 : 品質(0-100、大きいほど高品質)
  • -scale 20% : 出力サイズ(パーセンテージ)
  • *.gif : 対象ファイルの拡張子フィルター

例えば、もう少し品質を重視する場合:

# 色数を増やし、品質を上げ、サイズ縮小を控えめにした例
-colors 16 -quality 60 -scale 50%

また、あまりないかもしれないですが、拡張子がついてない場合は*.gifフィルターを除去して対応できます。

注意点

  • 元ファイルは上書きされるので、必要に応じて事前にバックアップを取ることをお勧めします
  • 極端な圧縮設定は画質の大幅な劣化につながる可能性があります
  • GIF以外のファイルに対して使用する場合は、ファイル形式によって圧縮効果が異なる可能性があります

おわりに

このスクリプトを使えば、大量のGIFファイルを簡単に一括圧縮できます。特にDiscordやSlackなどのファイルサイズ制限に引っかかる場合に便利です。圧縮設定は用途に応じて適宜調整してください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?