# Cecil 8.77.0 released

This release refactors and simplifies the image resizing and cropping logic, consolidating the functionality into a single, more flexible `resize` method. It also updates related Twig filters and templates to use the new approach and improves error handling and documentation throughout the image processing.

### Image processing API refactor and simplification

* The `cover` method for cropping images to specific dimensions has been removed from both the `Asset` class and the Twig filters. All resizing and cropping operations are now handled via an enhanced `resize` method that accepts both width and height, and crops the image if both are provided.
* The `resize` method in `Asset` and the corresponding Twig filter now accept both width and height as optional parameters, providing greater flexibility and reducing code duplication.
* The `Image::resize` method is updated to handle both resizing and cropping, replacing both the previous `resize` and `cover` methods. It now also includes an option to remove animation from images.

### Template and filter usage updates

* The `cover` Twig filter is removed, and all usages in templates are updated to use the new `resize(width, height)` signature.
* The metatags template now uses the new `resize` filter for OpenGraph images, passing both width and height where appropriate.

### Error handling and code clarity

* Exception messages throughout the image processing code have been standardized to include periods at the end and clarify the error context.
* Minor code cleanups and improved documentation for image processing methods.

### HTML image rendering improvements

* The `sizes` attribute for `<source>` elements is now only included when not empty, preventing invalid HTML.
* The `srcset` attribute is only added to images when it is not empty, improving output correctness.

Overall, these changes modernize and streamline image handling, making the API easier to use and maintain.
