![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 0 Dołączył: 9.01.2004 Ostrzeżenie: (20%) ![]() ![]() |
Witam !
Mam problem... Zrobiłem Bazę Ośrodków Jeździeckich i chcę, aby użytkownicy mogli dodawać zdjęcia (adres do zdjęć zdalnych...) Problem jest w tym, ze jezeli beda za duze, to wszsytko sie rozsypie... Jeżeli natomiast zastosuję stałe znaczniki height i width, to zdjęcie będzie zniekształcone... Potrzebuję zastosować coś, co zmniejszy obrazek, jeśli będzie większ niż 300 x 200... Jak to zrobic ? Pozdrawiam Patryk ![]() -------------------- Linux is like a Wigwam - no windows, no gates, Apache INSIDE...
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 636 Pomógł: 0 Dołączył: 22.10.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
zapoznaj się z http://www.php.net/image
chodzi oto, ze robisz ifa >> jezeli obrazek jest wiekszy >> to zmieszasz go >> i wypluwasz do przegladarki >> i nie bawisz sie w zadne htmlowe syfy typu width i height...... i adres takiego obrazka wyglada wtedy tak np. "obrazek.php?url=http://jakistamobazek.pl/img.jpg" A zeby zachowac oryginalne proporcje wymiarow to zmnieszajac go wylicz sobie ile procent wymiarow danego obrazka stanowi jeden z wymiarow np. szerokosc 300 i pomnoz drugi, pozostaly wymiar np. wysokosc przez ten wyliczony wczesniej wynik. Dzieki temu obrazek bedzie nie rozciagniety. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 0 Dołączył: 9.01.2004 Ostrzeżenie: (20%) ![]() ![]() |
Hmmm...
Chyba nie bardzo zrozumiałem... Przeczytałem mniej/więcej manual, ale moja znajomość angielskiego nie jest najlepsza ![]() Czy można prosić o troche dokladniejszy opis ? Będę bardzo wdzięczny Pozdrawiam Patryk :wink: (przykład. http://www.qnwortal.com/modules.php?name=p...azosrodek&id=56 ) -------------------- Linux is like a Wigwam - no windows, no gates, Apache INSIDE...
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 223 Pomógł: 1 Dołączył: -- Skąd: Rogożnik /K-ce/ Ostrzeżenie: (0%) ![]() ![]() |
Witam
Już miałem zacząć tłumaczyć Ci sposób na rozwiązanie tego problemu, ale byłoby tego dużo - a nie bardzo mam czas. Poniżej podaję Ci kod, który kiedyś wykorzystywałem - może Ci się przydać: [php:1:e5929678d2]<?php /* generowanie miniatur ------------------------- $photo="nazwa_pliku"; $rotate=1; - orientacja pionowa (2) lub pozioma (1) $size=300; - max. szerokość i wysokość zdjecia $var_photosfolder="photos/"; - katalog z fotkami */ $photo=$var_photosfolder.$photo; $photosize=getimagesize($photo); if($photosize[2]==1)$photofile=imagecreatefromgif($photo); if($photosize[2]==2)$photofile=imagecreatefromjpeg($photo); if($photosize[2]==3)$photofile=imagecreatefrompng($photo); if($rotate==1){ $photoX=round($size/$photosize[0],10); $newimagesize[0]=$size; $newimagesize[1]=ceil($photosize[1]*$photoX); } if($rotate==2){ $photoX=round($size/$photosize[1],10); $newimagesize[0]=ceil($photosize[0]*$photoX); $newimagesize[1]=$size; } $newimage=imagecreatetruecolor($newimagesize[0],$newimagesize[1]); imagecopyresampled($newimage,$photofile,0,0,0,0,$newimagesize[0],$newimagesize[1 ,$photosize[0],$photosize[1]); header("Content-type: image/jpeg"); imagejpeg($newimage); imagedestroy($newimage); ?>[/php:1:e5929678d2] Mam nadzieję, że ten kod Ci się przyda - zmodyfikuj go trochę a będzie na pewno przydatny. Ja miałem z tego zrobioną funkcję. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 1 Dołączył: 27.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
oto moje rozwiązanie pochodzące z książki php i MySql vademecum profesjonalisty
[php:1:c06375d51b]<?php if (!$max_szerokosc) $max_szerokosc = 160; if (!$max_wysokosc) $max_wysokosc = 220; $rozmiar = GetImageSize($zdjecie); $szerokosc = $rozmiar[0]; $wysokosc = $rozmiar[1]; $wspolczynnik_x = $max_szerokosc / $szerokosc; $wspolczynnik_y = $max_wysokosc / $wysokosc; if ( ($szerokosc <= $max_szerokosc) && ($wysokosc <= $max_wysokosc) ) { $nowa_szerokosc = $szerokosc; $nowa_wysokosc = $wysokosc; } else if (($wspolczynnik_x * $wysokosc) < $max_wysokosc) { $nowa_wysokosc = ceil($wspolczynnik_x * $wysokosc); $nowa_szerokosc = $max_szerokosc; } else { $nowa_szerokosc = ceil($wspolczynnik_y * $szerokosc); $nowa_wysokosc = $max_wysokosc; } $zrd = ImageCreateFromJpeg($zdjecie); $prz = ImageCreate($nowa_szerokosc,$nowa_wysokosc); ImageCopyResized($prz, $zrd, 0, 0, 0, 0, $nowa_szerokosc,$nowa_wysokosc,$szerokosc,$wysokosc); ?>[/php:1:c06375d51b] |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 2.03.2004 Skąd: Ziemia Giżycka Ostrzeżenie: (0%) ![]() ![]() |
Ja proponuję prostszy sposób:
[php:1:0fc45e7d30]<?php $img = imagecreatefromjpeg($url); $x = imagesx($img)/100;//docelowa maksymalna szerokosc $y = imagesy($img)/100;//docelowa maksymalna wysokosc if($x<=$y) { $x=imagesx($img)/$y; $y=imagesy($img)/$y; } else { $x=imagesx($img)/$x; $y=imagesy($img)/$x; } $imgMini = imagecreate(abs($x),abs($y)); $img = imagecopyresized($imgMini,$img,0,0,0,0,abs($x),abs($y),imagesx($img),imagesy($im )); ?>[/php:1:0fc45e7d30] -------------------- My name is Luke... Lucky Luke
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 0 Dołączył: 9.01.2004 Ostrzeżenie: (20%) ![]() ![]() |
Witam !
Dziękuję za odpowiedź, to pomogło ![]() Mam tylko jeszcze jedno pytanie... Jak potem taką miniaturkę zapisać do pliku ? Pozdrawiam Patryk -------------------- Linux is like a Wigwam - no windows, no gates, Apache INSIDE...
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 223 Pomógł: 1 Dołączył: -- Skąd: Rogożnik /K-ce/ Ostrzeżenie: (0%) ![]() ![]() |
Witam
[manual:409c9ccaab]imagejpeg[/manual:409c9ccaab] ma parametry, którymi możesz zapisać plik na dysk. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 0 Dołączył: 9.01.2004 Ostrzeżenie: (20%) ![]() ![]() |
Witam !
Dodałem do tego skryptu, co podałeś parametr dla ImageJPEG [php:1:65c1cddfdd] <?php // generowanie miniatur // ------------------------- $rotate=1; // orientacja pionowa (2) lub pozioma (1) $size=300; // max. szerokość i wysokość zdjecia $photosize=getimagesize($photo); if($photosize[2]==1)$photofile=imagecreatefromgif($photo); if($photosize[2]==2)$photofile=imagecreatefromjpeg($photo); if($photosize[2]==3)$photofile=imagecreatefrompng($photo); if($rotate==1){ $photoX=round($size/$photosize[0],10); $newimagesize[0]=$size; $newimagesize[1]=ceil($photosize[1]*$photoX); } if($rotate==2){ $photoX=round($size/$photosize[1],10); $newimagesize[0]=ceil($photosize[0]*$photoX); $newimagesize[1]=$size; } $newimage=imagecreatetruecolor($newimagesize[0],$newimagesize[1]); imagecopyresampled($newimage,$photofile,0,0,0,0,$newimagesize[0],$newimagesize[1 ,$photosize[0],$photosize[1]); header("Content-type: image/jpeg"); imagejpeg($newimage, "test.jpg"); ?>[/php:1:65c1cddfdd] , ale efekt jest taki, ze pojawia sie okienko sciagania pliku zdjecie.jpg i sciaga pusty plik ![]() Czy cos zle zrobilem ? Pozdrawiam Patryk (parametr photo podalem w adresie) -------------------- Linux is like a Wigwam - no windows, no gates, Apache INSIDE...
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 897 Pomógł: 40 Dołączył: 16.12.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
może na sam początek[php:1:454a225622]<?
$photo = $_GET['photo']; ?>[/php:1:454a225622] -------------------- how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 0 Dołączył: 9.01.2004 Ostrzeżenie: (20%) ![]() ![]() |
![]() Raczej nie tu lezy problem... mam włączone Global Registers ![]() -------------------- Linux is like a Wigwam - no windows, no gates, Apache INSIDE...
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 02:22 |