diff --git a/ShellScripts/tilemap-add-padding.sh b/ShellScripts/tilemap-add-padding.sh index 3bcf5c0..53bdbe5 100755 --- a/ShellScripts/tilemap-add-padding.sh +++ b/ShellScripts/tilemap-add-padding.sh @@ -7,6 +7,13 @@ tile_width="$3" # Width of each tile tile_height="$4" # Height of each tile tile_padding="$5" # Padding between tiles +# Get working directory +workdir=$(pwd) + +# Make temporary folder for temp files +tmpfolder="${workdir}/.tmp-tilemap-add-padding" +mkdir -p "${tmpfolder}" + # Get the dimensions of the input image image_width=$(magick identify -format "%w" "$input_image") image_height=$(magick identify -format "%h" "$input_image") @@ -20,7 +27,7 @@ new_width=$((tiles_across * (tile_width + tile_padding) - tile_padding)) new_height=$((tiles_down * (tile_height + tile_padding) - tile_padding)) # Create a blank canvas with a transparent background and enforce the correct color space -magick -size "${new_width}x${new_height}" xc:none -colorspace sRGB blank_canvas.png +magick -size "${new_width}x${new_height}" xc:none -colorspace sRGB "${tmpfolder}/blank_canvas.png" # Iterate through each tile in the tilemap for ((y = 0; y < tiles_down; y++)); do @@ -30,21 +37,21 @@ for ((y = 0; y < tiles_down; y++)); do tile_y=$((y * tile_height)) # Crop the tile while preserving the color space - magick "$input_image" -crop "${tile_width}x${tile_height}+$tile_x+$tile_y" -colorspace sRGB "tile_${x}_${y}.png" + magick "$input_image" -crop "${tile_width}x${tile_height}+$tile_x+$tile_y" -colorspace sRGB "${tmpfolder}/tile_${x}_${y}.png" # Place the tile on the new image, accounting for the 1-pixel padding new_tile_x=$((x * (tile_width + tile_padding))) new_tile_y=$((y * (tile_height + tile_padding))) # Composite the tile onto the new canvas, ensuring color space is preserved - magick composite -geometry "+${new_tile_x}+${new_tile_y}" "tile_${x}_${y}.png" -colorspace sRGB blank_canvas.png blank_canvas.png + magick composite -geometry "+${new_tile_x}+${new_tile_y}" "${tmpfolder}/tile_${x}_${y}.png" -colorspace sRGB "${tmpfolder}/blank_canvas.png" "${tmpfolder}/blank_canvas.png" done done # Save the final image while preserving the color space and transparency -magick blank_canvas.png -colorspace sRGB "$output_image" +magick "${tmpfolder}/blank_canvas.png" -colorspace sRGB "$output_image" # Clean up temporary tiles -rm tile_*.png +rm -r "${tmpfolder}" echo "Output saved to $output_image"