Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: image intervention - resize obrazka tak aby nie ucinać pikseli a zarazem zachować aspect ratio
Forum PHP.pl > Forum > PHP
swist666
Cześć,

Korzystam z https://github.com/Intervention/image i chciałbym zmniejszyć dowolny obraz do wielkości 200x150 jedak tak aby z bazowego obrazu nie uciąć ani jednego piksela a zarazem nie rozciągnąć go zachowując stosunek długości do wysokości (reszta białe piksele lub opcja 2 - reszta bez pikseli).

Funkcja ->fit($x,$y) jest super w momencie gdy nadmiar chcemy obciąć (coś jak w css background-size: cover).

Jednak nie znalałem odpowiednika funkcji contain z css. Wiem, że wystarczy sprawdzić czy $x > $y, zrobić odpowiedni resize i można dorobić białe piksele za pomocą resizeCanvas() ale chciałem zapytać czy nie ma gotowego rozwiązania - w końcu to dość rozbudowana biblioteka a ja może jakoś to przeoczyłem.
SwiezuPL
Nie lepiej użyć alternatywy?
Podaję przykład (rozszerzenie ImageMagick) ; http://php.net/manual/en/imagick.adaptiveresizeimage.php

@edit
http://image.intervention.io/api/resize
Cytat
// resize the image to a width of 300 and constrain aspect ratio (auto height)
$img->resize(300, null, function ($constraint) {
$constraint->aspectRatio();
});

// resize the image to a height of 200 and constrain aspect ratio (auto width)
$img->resize(null, 200, function ($constraint) {
$constraint->aspectRatio();
});

// prevent possible upsizing
$img->resize(null, 400, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
});
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.