午後わてんのブログ

ベランダ菜園とWindows用アプリ作成(WPFとC#)

半透明のpng画像を不透明に変換保存するアプリ、OpaOpaOpasityできた

英語:Opasity、日本語:不透明度

OpaOpaOpacity(おぱおぱおぱしてぃ)

OpaOpaOpacity

ダウンロード先

ここのOpaOpaOpasity1.0.7zがそれ
github.com

作成環境

目的

半透明のpng画像を不透明に変換して保存する

特徴

完全透明の部分(ピクセル)は変換しない

アプリの特徴

FireAlpacaWin64_2_10_2でチャンネル操作
画像アプリで不透明にすると透明な部分が真っ黒になる
なにか方法があったり、できるアプリがあるのかもしれないけどわからなかった

操作手順

  1. アプリのウィンドウに変換したいファイルをドラッグアンドドロップ

    ファイルをドラッグアンドドロップ

  2. 左側に変換対象となるpng画像ファイルリストが表示される

    リストと対象フォルダの表示

  3. 変換保存

    • A「全部変換」ボタンでリストにあるすべての画像が変換される
      全部変換

対象フォルダに作成されたopaopaopasityフォルダ

opaopaopasityファオルダの中に変換保存された画像

  • B「選択項目だけ変換」ボタンでリストで選択されているファイルだけ変換する
    リストをクリックで右下に画像表示される

選択項目だけ変換の結果

その他操作

  • 不透明度

    • Alpha:透過度、0から255の256段階、0で完全透明、 255で完全不透明
    • Opacity:不透明度、0.0から1.0で指定、0.0で完全透明、1.0で完全不透明
    • 不透明にするアプリだけど、どれくらい不透明にするか設定できる
      スライダーやボタンで不透明度調整
  • リスト項目の複数選択

    • ctrlキーかShiftキーを押しながらクリック
      クリックのかわりにスペースキーやカーソルキーでもできる
  • リストの右クリックメニューから選択項目だけ変換できる

    右クリックメニューから変換

変換時の動作

元の画像はそのまま
変換した画像の保存先は元画像ファイルがあるフォルダに
「opaopaopasity」フォルダを新規作成して、その中

変換前

  • Eドライブ
    • ┗素材
      • ┣バナナ.png
      • ┗にんにく.png

変換後

  • Eドライブ
    • ┗素材
      • ┣バナナ.png
      • ┣にんにく.png
      • ┗opaopaopasity
        • ┣バナナ.png
        • ┗にんにく.png

仕様

  • 動作対象Windows
  • 画像フォーマット、ピクセルフォーマット
    • 読み込めるのはpng画像ファイルだけ
    • 読み込み時はピクセルフォーマットBgra32に変換する
    • 保存時のピクセルフォーマットもBgra32…だと思う
  • 変換中動作
    • 変換中はアプリが固まり、変換終了まで操作できない
    • 変換の進捗が表示されないので、あとどれくらいで終わるのかわからない、変換時間は4年前のPCで160ファイル処理で3秒
  • 同名ファイルがあったとき
    • すでにopaopaopasityフォルダがあって、
    • その中に同名のファイルがあった場合でも上書き保存する


完走(アプリ完成)した感想と経緯(日記)

アイコンとアプリ名だけは会心のでき

PS2エミュレータのpcsx2でテクスチャ置き換えをするために、元になるテクスチャを保存(dump)したら全部半透明(Alpha値が128)!
半透明のままだと加工しにくいから不透明にしたくて、それができるアプリを探したけど見つからず作成

グランツーリスモ4より

モチュールピットワークZ(JGTC) 2004

テクスチャ書き換え、Pixtack紫陽花の色変換で青くしただけ
青と銀のZもかっこいい!
今気づいたけど、書き換えた方はフロントガラスが透けていない!なんか違和感あると思ってたけど気づかなかった
元のテクスチャのフロントガラス部分を見たらAlpha値が55になってた、これはどうしようか
Alpha値を足し算引き算する機能をつけるしかないかな
55→ 55+127=182→ 182-127=55

今回のように色相変換だけなら半透明のままでも問題ないけど、お絵描きアプリで編集するときは不透明のほうがいいはず

フロントガラスのAlpha値を55
nismoのoとBRIDGESTONEのBの赤を残してみた
MOTULも赤なんだけど、枠の赤だからここは青


関連記事

前回のWPF記事は2ヶ月前
gogowaten.hatenablog.com