mirror of
https://gitlab.com/dosowisko.net/libsuperderpy.git
synced 2025-03-04 09:11:27 +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()
|
else()
|
||||||
set(resizecmd "")
|
set(resizecmd "")
|
||||||
endif()
|
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)
|
if (CACHED)
|
||||||
file(REMOVE ${DATADIR}/${file})
|
file(REMOVE ${DATADIR}/${file})
|
||||||
configure_file(${CACHED} ${DATADIR}/${filepath}.wbp COPYONLY)
|
configure_file(${CACHED} ${DATADIR}/${filepath}.wbp COPYONLY)
|
||||||
unset(CACHED)
|
unset(CACHED)
|
||||||
else()
|
else()
|
||||||
separate_arguments(PARAMS)
|
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)
|
execute_process(COMMAND ${CONVERT_CMD} WORKING_DIRECTORY ${DATADIR} RESULT_VARIABLE CONVERT_RESULT)
|
||||||
if(CONVERT_RESULT)
|
if(CONVERT_RESULT)
|
||||||
message(WARNING "ERROR: ${CONVERT_RESULT}")
|
message(WARNING "ERROR: ${CONVERT_RESULT}")
|
||||||
else()
|
else()
|
||||||
file(REMOVE ${DATADIR}/${file})
|
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()
|
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
|
COMMAND ${CMAKE_COMMAND} -DDATADIR=${ASSET_PIPELINE_DATADIR} -DCACHE="${CMAKE_SOURCE_DIR}/.assetcache" -DBITRATE=${FLACTOOPUS_BITRATE} -P ${LIBSUPERDERPY_DIR}/cmake/FlacToOpus.cmake
|
||||||
USES_TERMINAL)
|
USES_TERMINAL)
|
||||||
|
|
||||||
set(IMGTOWEBP_QUALITY "75" CACHE STRING "Quality of resulting WebP files")
|
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_RESIZE "" CACHE STRING "Value passed as -resize to ImageMagick (no resizing when empty)")
|
||||||
set(IMGTOWEBP_PARAMS "" CACHE STRING "Additional ImageMagick parameters")
|
set(IMGTOWEBP_PARAMS "" CACHE STRING "Additional ImageMagick parameters")
|
||||||
|
|
||||||
add_custom_target(${LIBSUPERDERPY_GAMENAME}_img_to_webp
|
add_custom_target(${LIBSUPERDERPY_GAMENAME}_img_to_webp
|
||||||
DEPENDS ${ASSET_PIPELINE_DEPEND}
|
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)
|
USES_TERMINAL)
|
||||||
|
|
||||||
endif(ANDROID OR EMSCRIPTEN)
|
endif(ANDROID OR EMSCRIPTEN)
|
||||||
|
|
Loading…
Add table
Reference in a new issue