The .gitignore file has been updated to ignore all files in the cache directory, except for the .gitkeep file. A new .gitkeep file has also been created in the cache directory.
The image processing logic has been updated to better handle optional parameters. Previously, the code would always pad and resize the canvas regardless of whether width, height, or canvas dimensions were provided. Now, padding and resizing only occur if the corresponding options are set. This change makes the code more flexible and prevents potential errors when certain parameters are not provided.