実現したいこと
ASTCフォーマットで圧縮された画像を汎用の画像データ(ex. PNG, JPG etc...)に変換したい。そもそもできるのか不明なので知りたい。
前提
圧縮された画像をPHPで取り扱いたいが、そのままだと表示できない。なので汎用画像データに変換して表示しようと試みている。
試したこと
- 調べる (1h程度)
- astcencを使ってみる(失敗)
- Pythonのastc-decompを使ってみる(失敗)
補足情報(FW/ツールのバージョンなど)
- コマンドラインで自立実行できるようなアプリケーションを探してます
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
下記のような質問は推奨されていません。
- 質問になっていない投稿
- スパムや攻撃的な表現を用いた投稿
適切な質問に修正を依頼しましょう。
回答3件
0
ベストアンサー
Unityタグからきますた
一旦ServerOSとかCPUアーキテクチャの指定がなかったので一番クソ楽な方法なWin10+WSL Ubuntu22.04で...
sudo apt install astcenc
するのが最速な気がします
WSLじゃなくてもちろんいけると思います。
動作確認は以下の通りです。
$ wget https://placehold.jp/150x150.png #test画像のDL $ astcenc -cl ./150x150.png test.astc 6x5 -medium #いったんastcに $ astcenc -dh ./test.astc output.png #デコード
一旦こんな感じで動作確認までできてます.
普通はデコードなんてあんましやらんのですがASTCはMobile向けGPUでしか基本動かないので臨時対応としてデコードすることが稀にあります。
あとは任天堂Switchのエミュレータとかですかね。
2023年現在は.ktx2という圧縮コンテナ型式を使うのがおすすめで、ランタイム展開時にGPUのアーキテクチャを問わずに適切な圧縮formatを展開できます。
圧縮形式の決定権があるのあれば、astcを直で使うのではなくktx2を使ってthree.js経由でWebGL Canvasから表示したほうがシンプルかもしれません。
参考
https://github.com/KhronosGroup/KTX-Software
https://threejs.org/docs/#examples/en/loaders/KTX2Loader
投稿2023/03/22 05:02
編集2023/03/22 05:10総合スコア100
0
https://github.com/mafaca/Astc
こちらにC#で実装したdecoderがあるみたいですが参考になりませんか?
投稿2023/03/18 22:39
総合スコア9641
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
回答へのコメント
0
全然詳しくないので詳しい方がいらっしゃるようでしたらそちらを参照いただきたいところですが、
(すでに試されている?みたいではありますが)本家が encoder/decoder を提供しているのでそちらを使うのがよさそうにおもいました。
https://github.com/ARM-software/astc-encoder
たとえば astc => bmp => opencv 等のフローを作れば大抵のプログラミング言語で取り回せるかとおもいます。
PHP であれば https://github.com/php-opencv/php-opencv などみつかりました。(このライブラリがメジャーかはわかりませんが)
投稿2023/03/18 17:24
総合スコア73
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
回答へのコメント
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
関連した質問
意見交換
クローズ
HTMLファイル一つでどこまでできるのか
回答20
クリップ0
更新
2023/05/27
Q&A
受付中
C言語のマージソートで途中にSegmentation faultが出る
回答1
クリップ0
更新
2023/06/05
意見交換
受付中
Python経験2年からゲームプログラマーになるためには
回答18
クリップ2
更新
2023/05/31
Q&A
解決済
自作した確率密度による確率分布に従うランダムなデータをn件生成するには?
回答1
クリップ0
更新
2023/06/07
意見交換
クローズ
プログラミングの設計が分からない
回答24
クリップ11
更新
2023/04/17
意見交換
受付中
大規模言語モデル ファインチューニングの方法
回答5
クリップ1
更新
2023/06/07
Q&A
解決済
時系列の足し算、欠損値=0の場合、どう書き換えたらいいですか
回答2
クリップ0
更新
2023/06/07
意見交換
受付中
データ分析、機械学習や人工知能にPythonが使われている理由に関して。
回答11
クリップ2
更新
2023/06/07
同じタグがついた質問を見る
Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2023/04/12 05:53