mirror of
https://gitlab.com/dosowisko.net/libsuperderpy.git
synced 2025-03-04 01:01:28 +01:00
ImgToWebp: add ability to use lossless compression
Good for pixel art
This commit is contained in:
parent
a411819d5a
commit
e89f654559
2 changed files with 15 additions and 5 deletions
|
@ -14,20 +14,25 @@ if(CONVERT)
|
|||
else()
|
||||
set(resizecmd "")
|
||||
endif()
|
||||
GetFromAssetCache(${CACHE} ${DATADIR}/${file} "${QUALITY}-${RESIZE}-${PARAMS}" CACHED HASH)
|
||||
if (LOSSLESS)
|
||||
set(losslesscmd -define webp:lossless=true)
|
||||
else()
|
||||
set(losslesscmd "")
|
||||
endif()
|
||||
GetFromAssetCache(${CACHE} ${DATADIR}/${file} "${LOSSLESS}-${QUALITY}-${RESIZE}-${PARAMS}" CACHED HASH)
|
||||
if (CACHED)
|
||||
file(REMOVE ${DATADIR}/${file})
|
||||
configure_file(${CACHED} ${DATADIR}/${filepath}.wbp COPYONLY)
|
||||
unset(CACHED)
|
||||
else()
|
||||
separate_arguments(PARAMS)
|
||||
set(CONVERT_CMD ${CONVERT} ${file} -quality ${QUALITY} ${PARAMS} ${resizecmd} webp:${filepath}.wbp)
|
||||
set(CONVERT_CMD ${CONVERT} ${file} -quality ${QUALITY} ${PARAMS} ${resizecmd} ${losslesscmd} webp:${filepath}.wbp)
|
||||
execute_process(COMMAND ${CONVERT_CMD} WORKING_DIRECTORY ${DATADIR} RESULT_VARIABLE CONVERT_RESULT)
|
||||
if(CONVERT_RESULT)
|
||||
message(WARNING "ERROR: ${CONVERT_RESULT}")
|
||||
else()
|
||||
file(REMOVE ${DATADIR}/${file})
|
||||
AddToAssetCache(${CACHE} ${HASH} "${QUALITY}-${RESIZE}-${PARAMS}" "${DATADIR}/${filepath}.wbp")
|
||||
AddToAssetCache(${CACHE} ${HASH} "${LOSSLESS}-${QUALITY}-${RESIZE}-${PARAMS}" "${DATADIR}/${filepath}.wbp")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
|
|
@ -330,13 +330,18 @@ if (NOT LIBSUPERDERPY_CONFIG_INCLUDED)
|
|||
COMMAND ${CMAKE_COMMAND} -DDATADIR=${ASSET_PIPELINE_DATADIR} -DCACHE="${CMAKE_SOURCE_DIR}/.assetcache" -DBITRATE=${FLACTOOPUS_BITRATE} -P ${LIBSUPERDERPY_DIR}/cmake/FlacToOpus.cmake
|
||||
USES_TERMINAL)
|
||||
|
||||
option(IMGTOWEBP_LOSSLESS "Use lossless WebP compression" OFF)
|
||||
if(IMGTOWEBP_LOSSLESS)
|
||||
set(IMGTOWEBP_QUALITY "100" CACHE STRING "Quality of resulting WebP files")
|
||||
else(IMGTOWEBP_LOSSLESS)
|
||||
set(IMGTOWEBP_QUALITY "75" CACHE STRING "Quality of resulting WebP files")
|
||||
endif(IMGTOWEBP_LOSSLESS)
|
||||
set(IMGTOWEBP_RESIZE "" CACHE STRING "Value passed as -resize to ImageMagick (no resizing when empty)")
|
||||
set(IMGTOWEBP_PARAMS "" CACHE STRING "Additional ImageMagick parameters")
|
||||
|
||||
add_custom_target(${LIBSUPERDERPY_GAMENAME}_img_to_webp
|
||||
DEPENDS ${ASSET_PIPELINE_DEPEND}
|
||||
COMMAND ${CMAKE_COMMAND} -DQUALITY="${IMGTOWEBP_QUALITY}" -DRESIZE="${IMGTOWEBP_RESIZE}" -DPARAMS="${IMGTOWEBP_PARAMS}" -DCACHE="${CMAKE_SOURCE_DIR}/.assetcache" -DDATADIR=${ASSET_PIPELINE_DATADIR} -P ${LIBSUPERDERPY_DIR}/cmake/ImgToWebp.cmake
|
||||
COMMAND ${CMAKE_COMMAND} -DQUALITY="${IMGTOWEBP_QUALITY}" -DRESIZE="${IMGTOWEBP_RESIZE}" -DPARAMS="${IMGTOWEBP_PARAMS}" -DCACHE="${CMAKE_SOURCE_DIR}/.assetcache" -DLOSSLESS="${IMGTOWEBP_LOSSLESS}" -DDATADIR=${ASSET_PIPELINE_DATADIR} -P ${LIBSUPERDERPY_DIR}/cmake/ImgToWebp.cmake
|
||||
USES_TERMINAL)
|
||||
|
||||
endif(ANDROID OR EMSCRIPTEN)
|
||||
|
|
Loading…
Add table
Reference in a new issue