![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
Witam serdecznie,
Potrzebuję zrobić generator miniaturek w PHP. chciałbym skryptem nakładać zrobioną już miniaturkę na pusty kwadrat i łączysz w jeden obrazek. (chce uzyskać w galerii jednakową wielkość miniaturek) Wie ktoś może jak to ugryźć? Łukasz |
|
|
![]() |
![]()
Post
#2
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
http://pl2.php.net/manual/pl/book.image.php
A próbowałeś już coś? Czy czekasz na gotowca? Pokaż jakiś kod. -------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 21 Pomógł: 1 Dołączył: 6.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Kod <?php //Autor: Podgur class ImageException extends Exception { public function __toString() { $ret = 'Powstal blad<br /> Komunikat: '.$this->getMessage().'<br />Plik: '.$this->getFile().'<br />Wiersz: '.$this->getLine(); return $ret; } } class ImageClass { public $image; //konstruktor pobierający obrazek function __construct($url) { //Sprawdzanie czy istnieje plik graficzny podany w konstruktorze if(!file_exists($url)) { //W przypadku nie istnienia pliku throw new ImageException('Podany plik nie istnieje'); }else{ $this->image=$url; } } public function resize($height,$width,$quality=60) { //Brak obsługi formatu png i bmp //Pobranie nazwy pliku $namefile = $this->image; //Wycięcie rozszerzenia $type = substr(strstr($namefile,'.'),1); //Tablica z formatami $rozszerzenia=array("jpg","jpeg","gif"); if(!in_array($type,$rozszerzenia)) { throw new ImageException('Zly format pliku'); } //Nagłówek header("Content-Type: image/$type"); switch($type){ //Rozszerzenie *.jpg/jpeg case "jpg": $img = imagecreatefromjpeg($this->image); break; //Rozszerzenie *.gif case "gif": $img = imagecreatefromgif($this->image); break; } $mini = imagecreatetruecolor($width,$height); //Stworzenie miniatury imagecopyresized($mini,$img,0,0,0,0,$width,$height,imagesx($img),imagesy($img)); switch($type){ //Rozszerzenie *.jpg/jpeg case "jpg": imagejpeg($mini, "mini".rand(1,100)."_$namefile", 70); break; //Rozszerzenie *.gif case "gif": imagegif($mini, "mini".rand(1,100)."_$namefile", 70); break; } } } try { //wywolanie obiektu klasy. Jako parametr dajemy scieżke, bądź nazwę pliku $photo = new ImageClass('a.jpg'); //wywolanie metody resize() $photo->resize(1000,1000); //Przyjmuje 3 parametry: wysokosc,szerokosc i jakość miniatury } catch(ImageException $error) { echo $error; } ?> Trochę sobie zmodyfikujesz i będzie dobrze. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
a co zrobić żeby wyświetlić od razu tą mniaturkę - bez zapisu?
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 575 Pomógł: 299 Dołączył: 26.03.2009 Ostrzeżenie: (20%) ![]() ![]() |
http://pl2.php.net/manual/pl/book.image.php A próbowałeś już coś? Czy czekasz na gotowca? Pokaż jakiś kod. blooregard dał ci odpowiedź -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
dzięki Padgur za kod - extra działa
![]() muszę jeszcze zrobić miniaturki które będą działały tak: jeśli zdjęcie jest pionowe, kwadratowe, etc. pojawiają się marginesy boczne; a jeśli dodane zostanie zdjęcie panoramiczne, to pojawią sie marginesy górny i dolny. Macie może pomysł jak to zrobić? chciałbym uzyskać taki efekt: ![]() - chodzi o te marginesy :/ Ten post edytował northwest 13.04.2010, 20:15:36 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 9 Dołączył: 19.11.2004 Skąd: Iława Ostrzeżenie: (0%) ![]() ![]() |
Jezeli odpowiada Ci skorzystanie z czyjejs biblioteki, zamiast surowy kod, to kiedys zrobilem sobie narzedzie m.in wlasnie do takich miniatur:
download: http://php.vgtworld.pl/html/download przyklady: http://php.vgtworld.pl/class/vgtgd ogolnie na stronie z przykladami drugi akapit w miniaturach, to rezultat, ktorego oczekujesz. Sposob uzyskania:
Ten post edytował VGT 14.04.2010, 11:53:02 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
super dzięki
![]() ps. znalazłem jeszcze taką funkcję: Kod function generateThumbnail($fname, $thwidth, $thheight, $fnname) { $src = imagecreatefromjpeg($fname); list($imgwidth,$imgheight)=getimagesize($fname); $imgratio = $imgwidth / $imgheight; $thratio = $thwidth / $thheight; if ($imgratio < $thratio) { $newwidth = $thheight * $imgratio; $offsetx = ($thwidth - $newwidth) / 2; $newheight = $thheight; $offsety = 0; } else { $newwidth = $thwidth; $offsetx = 0; $newheight = $thwidth / $imgratio; $offsety = ($thheight - $newheight) / 2; } $tmp=imagecreatetruecolor($thwidth,$thheight); imagecopyresampled($tmp,$src,$offsetx,$offsety,0,0,$newwidth,$newheight,$imgwidth,$imgheight); $p = strpos($_SERVER['REQUEST_URI'], 'index.php'); $subpath = '/hmip/_thumb/'; $tmpfilename = $_SERVER['DOCUMENT_ROOT'].$subpath.$fnname; imagejpeg($tmp,$tmpfilename,100); imagedestroy($src); imagedestroy($tmp); return $tmpfilename; } ten kod też nadaje marginesy :-) tylko są czarne... da się je ustawić jakoś na białe? |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 9 Dołączył: 19.11.2004 Skąd: Iława Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 14.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
w
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
VGT - działa, dzięki
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 15:19 |