PillowでPNGファイルを変換するときの背景処理
PillowでPNGファイルを変換するときの背景処理 PillowでPNGファイルをJPGに変換するときに、背景が透過のファイルを変換すると透過部分が黒くなったり、不自然な途切れ方をしたりといった時の対処方法です。 開発 […]
Filter by Category
PillowでPNGファイルを変換するときの背景処理 PillowでPNGファイルをJPGに変換するときに、背景が透過のファイルを変換すると透過部分が黒くなったり、不自然な途切れ方をしたりといった時の対処方法です。 開発 […]
名前に現在時刻を入れたファイルが連番かどうか判定(後半) 前回からの続きです。 前回は連番になっていたらまとめてリスト化しましたが、今回はまとめたファイルを動画に変換して書き出します。 コードはGitHubリポジトリにあ […]
信州ベンチャーサミットに弊社代表の石井が登壇しました 2020年2月8日(土)に長野市芸術館でピッチイベント「信州ベンチャーサミット2020」に弊社代表の石井が登壇しました。
名前に現在時刻を入れたファイルが連番かどうか判定(前半) なにかアクションがあった際に生成されるファイル名に現在時刻が入ったファイルが、連番になっているかどうかを判別して連番になっていたらまとめてリスト化する方法です。手 […]
Beautiful Soupでbrタグを改行コードに変換する Beautiful Soupでスクレイピングしたdivタグ内にbrタグがあった際に改行コードに変換する方法です。以下のコードはbrタグが複数ある場合にも対応し […]
フォルダ内のファイルを複数毎にzip形式に圧縮 ファイルをまとめてzip形式に圧縮してしまうと容量が増えてしまうので、メールなどで送るために複数個に分けて圧縮ファイルを作りたいときがあります。ファイル数がそれほど多くない […]
2020年1月1日(水)ぐんま経済新聞に掲載されました 2020年1月1日(水)ぐんま経済新聞の新年特別号 IT特集に弊社代表の石井が掲載されました。
OpenCVで複数の画像から動画ファイルを作る 前回に続き、今回は複数の画像をまとめて動画ファイルに変換する方法です。gifアニメーションを生成するときはPillowを使いましたが、動画を生成するときはOpenCVを使い […]
複数の画像からgifアニメーションを作る 定点撮影などで連番になっている複数の画像をまとめてgifアニメーションに変換する方法です。 コードはGitHubリポジトリにあげています。 コード 結果 解説 import gl […]
SeleniumでChromeが立ち上がらない Pythonでスクレイピングする時にSeleniumでChromeを立ち上げますが、その際に以下のエラーが出てブラウザが起動しない場合があります。その時の解決方法です。 解 […]
Daiwa Innovation Networkに弊社代表の石井が登壇しました 2019年12月19日(木)に大和証券本店で開催された大和証券株式会社主催のピッチイベント「第82回 Daiwa Innovati […]
2019年の冬季休業のお知らせ 誠に勝手ながら、弊社では下記日程を冬季休業とさせていただきます。 冬季休業期間 2019年12月28日(土)~2020年1月5日(日) 期間中にいただきましたお問い合わせにつきましては、冬 […]
群馬イノベーションアワード2019に登壇しました 12/7(日)にヤマダグリーンドーム前橋で開催された群馬イノベーションアワード2019で弊社代表の石井がファイナリストとして登壇しました。
ダウンロードするファイルの文字コードを動的に変更 ウェブアプリケーションの中でCSVやテキストファイルをダウンロードさせた時に文字化けが発生する事があります。使用する文字コードが決まっていれば予め固定してしまう事で文字化 […]
画像のアップロード Google Colaboratoryで画像をアップロードして表示する方法です。画像解析以外にもCSVのアップロードなどの際にも同じ方法でアップロードできます。 画像のインライン表示 今度はアップロー […]
2019年10月18日(金)の上毛新聞に掲載されました
PostgreSQLと通信するページで502 Bad Gateway Djangoで開発したWebアプリでPostgreSQLと通信するページにアクセスした時に、502 Bad Gatewayが発生したので調べた内容と解 […]
第5回 群馬ベンチャーサミットに代表の石井が登壇します 「第5回 群馬ベンチャーサミット」概要 開催日時:2019年9月7日(土) 13:00 ~ 17:30 会場:群馬会館(群馬県前橋市大手町2-1-1) 主催(共同主 […]
2019年8月29日(木)のぐんま経済新聞に掲載されました。
誠に勝手ながら、弊社では下記日程を夏季休業とさせていただきます。 夏季休業期間 2019年8月10日(土)~8月18日(月) 期間中にいただきましたお問い合わせにつきましては、夏季休業期間後の8月19日(火)より順次対応 […]
PillowでPNGファイルをJPGに変換するときに、背景が透過のファイルを変換すると透過部分が黒くなったり、不自然な途切れ方をしたりといった時の対処方法です。
開発環境
$ python -V
Python 3.7.0
$ tree
├── base.png
└── convert.py
from PIL import Image
img_path = 'base.png'
new_img_path = 'new.jpg'
img = Image.open(img_path).convert("RGB")
img.save(new_img_path, 'JPEG', quality=100, optimize=True)
元々のコードです。このコードだと背景が透過の画像を変換すると背景部分の表示が不自然になってしまいます。
from PIL import Image
img_path = 'base.png'
new_img_path = 'new.jpg'
img = Image.open(img_path)
img.load()
background = Image.new("RGB", img.size, (255, 255, 255))
background.paste(img, mask=img.split()[3])
background.save(new_img_path, "JPEG", quality=100)
背景が不自然にならないように元となる画像と同じサイズの画像(背景画像)を生成して、その上に元の画像を合成することで背景の処理をしています。
from PIL import Image
モジュールを読み込む
img_path = 'base.png'
new_img_path = 'new.jpg'
元画像と変換後の画像のファイル名を指定
img = Image.open(img_path)
元画像を開く
img.load()
元画像を読み込む
background = Image.new("RGB", img.size, (255, 255, 255))
元画像と同じサイズの合成用背景画像を生成
background.paste(img, mask=img.split()[3])
背景画像の上に元画像を合成
background.save(new_img_path, "JPEG", quality=100)
合成した画像を保存
群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。
メーリングリストに登録するとファントムの最新情報をお届けします
お客様のメールアドレスを共有することはありません
Comments