Compare commits

...

2 Commits

Author SHA1 Message Date
jameswood 438bb264d1 rotate resized images based on exif info
EXIF rotation information embedded by the capture device is now
respected when generating output images. Original images remain
untouched.
2017-03-10 16:03:03 +11:00
Joseph Wynn 0cc608031e Set the linguist-vendored attribute on features/test-site/*
This prevents Linguist from including the directory in the GitHub language stats
2017-01-09 11:37:19 +13:00
5 changed files with 31 additions and 7 deletions

1
.gitattributes vendored Normal file
View File

@ -0,0 +1 @@
features/test-site/* linguist-vendored

View File

@ -46,6 +46,11 @@ responsive_image:
- width: 800 - width: 800
- width: 1400 - width: 1400
quality: 90 quality: 90
# [Optional, Default: false]
# Rotate resized images depending on their EXIF rotation attribute. Useful for
# working with JPGs directly from digital cameras and smartphones
respect_exif_rotation: false
# [Optional, Default: assets] # [Optional, Default: assets]
# The base directory where assets are stored. This is used to determine the # The base directory where assets are stored. This is used to determine the
@ -128,7 +133,23 @@ You will need to create a template in order to use the `responsive_image` tag. B
{% endfor %} {% endfor %}
{% endcapture %} {% endcapture %}
<img src="/{{ path }}" alt="{{ alt }}" srcset="{{ srcset | strip_newlines }} /{{ original.path }} {{ original.width }}w"> <img src="/{{ path }}" alt="{{ alt }}" srcset="{{ srcset | strip_newlines }}">
```
#### Responsive image with `srcset` where the largest resized image is the default
> **Note:** This is useful if you don't want your originals to appear on your site. For example, if you're uploading full-res images directly from a device.
```twig
{% capture srcset %}
{% for i in resized %}
/{{ i.path }} {{ i.width }}w,
{% endfor %}
{% endcapture %}
{% assign largest = resized | sort: 'width' | last %}
<img src="/{{ largest.path }}" alt="{{ alt }}" srcset="{{ srcset | strip_newlines }}">
``` ```
#### Responsive images with `<picture>` #### Responsive images with `<picture>`

View File

@ -2,11 +2,12 @@ module Jekyll
module ResponsiveImage module ResponsiveImage
class Config class Config
DEFAULTS = { DEFAULTS = {
'default_quality' => 85, 'default_quality' => 85,
'base_path' => 'assets', 'base_path' => 'assets',
'output_path_format' => 'assets/resized/%{filename}-%{width}x%{height}.%{extension}', 'output_path_format' => 'assets/resized/%{filename}-%{width}x%{height}.%{extension}',
'sizes' => [], 'sizes' => [],
'extra_images' => [] 'extra_images' => [],
'respect_exif_rotation' => false
} }
def initialize(site) def initialize(site)

View File

@ -4,6 +4,7 @@ module Jekyll
include ResponsiveImage::Utils include ResponsiveImage::Utils
def resize_image(img, config) def resize_image(img, config)
img.auto_orient! if config['respect_exif_rotation']
resized = [] resized = []
config['sizes'].each do |size| config['sizes'].each do |size|

View File

@ -1,5 +1,5 @@
module Jekyll module Jekyll
module ResponsiveImage module ResponsiveImage
VERSION = '1.1.0'.freeze VERSION = '1.1.1'.freeze
end end
end end