X11

從 PNG 為 C 標頭創建 ARGB 結構

  • July 31, 2015

我需要將徽標點陣圖更新為更新後的徽標。現有程式碼使用通過載入的 C 標頭XChangeProperty

我研究了 imagemagick 和 Gimp,以便將我擁有的更新後的 png 轉換為合適的標題。Gimp 甚至說“導出一個 C 標頭檔”(或類似的東西),但結果與現有格式不同。

我如何(最好在命令行上)從 png 轉到合適的標頭檔?

*編輯:*稍微擴展問題,我想替換的(現在已過時)徽標在此文件中在此處使用

使用 ImageMagick,基於rlogo_icon.h

#!/bin/sh
echo 'unsigned long rlogo_icon[] = {'
identify -format '%w, %h,' $1
convert $1 -color-matrix '0 0 1 0, 0 1 0 0, 1 0 0 0, 0 0 0 1' RGBA:- | hexdump -v -e '1/4 "0x%08x,\n"'
echo '};'

用法:

./script.sh rlogo_icon.png > rlogo_icon.h

我不確定這-color-matrix是否總是正確的。我按照 BGRA 的順序放置字節,因為我的電腦是小端的。

引用自:https://unix.stackexchange.com/questions/219303