![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 152 Pomógł: 1 Dołączył: 14.05.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 9 Dołączył: 16.11.2014 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
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(); }); Ten post edytował SwiezuPL 23.02.2016, 22:42:05 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 06:10 |