Skip to content

Commit 5b46f23

Browse files
committed
Finish ICC ProfileSizeThreshold transformation
1 parent b283622 commit 5b46f23

File tree

5 files changed

+44
-22
lines changed

5 files changed

+44
-22
lines changed

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -315,12 +315,15 @@ $url = $transformation->grayscale()->getUrl();
315315
The operation defines which RGB color profile sizes will be considered “small” and “large” when using srgb in `fast` or `icc` modes. The `number` stands for the ICC profile size in kilobytes.
316316

317317
The default value is 10 (10240 bytes). Most of the common RGB profile sizes (sRGB, Display P3, ProPhoto, Adobe RGB, Apple RGB) are below the threshold.
318+
> Please note, that because this transformation should always be used in combinagtion with [`convertToSRGB()`](#convert-to-srgb) its method should be called <strong>after</strong> `convertToSRGB()`. Otherwise the ICC profile size threshold gets overwritten by the `convertToSRGB()` transformation.
318319
319320
```php
320-
$url = $transformation->iccProfileSizeThreshold(10)->getUrl();
321-
// https://example.com/cdn/.../max_icc_size/10/
321+
$url = $transformation->convertToSRGB('fast')->iccProfileSizeThreshold(10)->getUrl();
322+
// https://example.com/cdn/.../max_icc_size/50/srgb/fast
322323
```
323324

325+
326+
324327
### Inverting
325328
Inverts images rendering a 'negative' of the input.
326329

src/Methods/Transformations.php

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,32 @@
22

33
namespace Vormkracht10\UploadcareTransformations\Methods;
44

5-
use Vormkracht10\UploadcareTransformations\Transformations\AutoRotate;
6-
use Vormkracht10\UploadcareTransformations\Transformations\BasicColorAdjustments;
75
use Vormkracht10\UploadcareTransformations\Transformations\Blur;
8-
use Vormkracht10\UploadcareTransformations\Transformations\BlurFaces;
9-
use Vormkracht10\UploadcareTransformations\Transformations\BlurRegion;
10-
use Vormkracht10\UploadcareTransformations\Transformations\ConvertToSRGB;
116
use Vormkracht10\UploadcareTransformations\Transformations\Crop;
12-
use Vormkracht10\UploadcareTransformations\Transformations\CropByObjects;
13-
use Vormkracht10\UploadcareTransformations\Transformations\CropByRatio;
14-
use Vormkracht10\UploadcareTransformations\Transformations\Enhance;
15-
use Vormkracht10\UploadcareTransformations\Transformations\Filter;
167
use Vormkracht10\UploadcareTransformations\Transformations\Flip;
8+
use Vormkracht10\UploadcareTransformations\Transformations\Filter;
179
use Vormkracht10\UploadcareTransformations\Transformations\Format;
1810
use Vormkracht10\UploadcareTransformations\Transformations\Mirror;
19-
use Vormkracht10\UploadcareTransformations\Transformations\Overlay;
20-
use Vormkracht10\UploadcareTransformations\Transformations\Progressive;
21-
use Vormkracht10\UploadcareTransformations\Transformations\Quality;
2211
use Vormkracht10\UploadcareTransformations\Transformations\Resize;
2312
use Vormkracht10\UploadcareTransformations\Transformations\Rotate;
24-
use Vormkracht10\UploadcareTransformations\Transformations\ScaleCrop;
13+
use Vormkracht10\UploadcareTransformations\Transformations\Enhance;
14+
use Vormkracht10\UploadcareTransformations\Transformations\Overlay;
15+
use Vormkracht10\UploadcareTransformations\Transformations\Quality;
2516
use Vormkracht10\UploadcareTransformations\Transformations\SetFill;
2617
use Vormkracht10\UploadcareTransformations\Transformations\Sharpen;
18+
use Vormkracht10\UploadcareTransformations\Transformations\BlurFaces;
19+
use Vormkracht10\UploadcareTransformations\Transformations\ScaleCrop;
2720
use Vormkracht10\UploadcareTransformations\Transformations\SmartCrop;
21+
use Vormkracht10\UploadcareTransformations\Transformations\AutoRotate;
22+
use Vormkracht10\UploadcareTransformations\Transformations\BlurRegion;
23+
use Vormkracht10\UploadcareTransformations\Transformations\CropByRatio;
24+
use Vormkracht10\UploadcareTransformations\Transformations\Progressive;
2825
use Vormkracht10\UploadcareTransformations\Transformations\SmartResize;
2926
use Vormkracht10\UploadcareTransformations\Transformations\ZoomObjects;
27+
use Vormkracht10\UploadcareTransformations\Transformations\ConvertToSRGB;
28+
use Vormkracht10\UploadcareTransformations\Transformations\CropByObjects;
29+
use Vormkracht10\UploadcareTransformations\Transformations\BasicColorAdjustments;
30+
use Vormkracht10\UploadcareTransformations\Transformations\ICCProfileSizeThreshold;
3031

3132
class Transformations
3233
{

src/Transformations/ConvertToSRGB.php

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,10 @@ public static function validate(string $key, ...$args): ?bool
2929

3030
public static function generateUrl(string $url, array $values): string
3131
{
32-
33-
// if (isset($this->transformations['icc_profile_size_threshold'])) {
34-
// $transformation = $this->transformations['icc_profile_size_threshold'];
35-
36-
// // -/max_icc_size/:number
37-
// $url .= '/max_icc_size/' . $transformation['number'];
38-
// }
32+
if (isset($values['size'])) {
33+
// -/max_icc_size/:number
34+
$url .= '/max_icc_size/' . $values['size'];
35+
}
3936

4037
// -/srgb/:profile
4138
$url .= '/srgb/' . $values['profile'];

src/Transformations/ICCProfileSizeThreshold.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,10 @@ public static function validate(string $key, ...$args): ?bool
2121
{
2222
return null;
2323
}
24+
25+
public static function generateUrl(string $url, array $values): string
26+
{
27+
// We don't have to do anything here as it is already part of of the ConvertToSRGB transformation.
28+
return $url;
29+
}
2430
}

src/Transformations/TransformationsFinder.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,21 @@ public static function for(array $transformations)
7878
$keys = array_keys($transformations);
7979

8080
foreach ($keys as $transformation) {
81+
82+
// We need to check if ICCProfileSizeThreshold is used because it is a special case.
83+
// This is because the URL transformation is a part of the ConvertToSRGB transformation.
84+
if ($transformation === self::ICC_PROFILE_SIZE_THRESHOLD) {
85+
$classes[self::CONVERT_TO_SRGB] = [
86+
'class' => self::getTransformation(self::CONVERT_TO_SRGB),
87+
'values' => [
88+
'profile' => $transformations[self::CONVERT_TO_SRGB]['profile'],
89+
'size' => $transformations[$transformation]['number'],
90+
],
91+
];
92+
93+
continue;
94+
}
95+
8196
$classes[$transformation] = [
8297
'class' => self::getTransformation($transformation),
8398
'values' => $transformations[$transformation],

0 commit comments

Comments
 (0)