![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 26.04.2003 Skąd: Konstantynów Łódzki Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym zmniejszyć kompresję zapisu zdjęć w php.
Z góry dziękuje za pomoc |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Chodzi o JPEG?
Jeżeli tak to: [php:1:2869674adf]<?php $img=imagecreatefromjpeg("plik.jpg"); $kompresja=50; /* wartość zmiennej kompresja można określać w zakresie od 0 do 100, gdzie 0 to najniższa a 100 to najwyższa jakość */ imagejpeg($img, "plik2.jpg", $kompresja); ?>[/php:1:2869674adf] Powinno działać. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 12.07.2003 Skąd: Chełm Ostrzeżenie: (0%) ![]() ![]() |
A ja wpisuję wartość kompresji na 100 i mimo to obrazek wygląda prawie jak gif. Tylko w miejscu nazwy pliku piszę null albo ' ' , czyli pusto bo nie zapisuję obrazka tylko wysyłam go od razu do przeglądarki.
Skrypt zmienia jednocześnie rozmiar obrazka. Wszystko działa pięknie z wyjątkiem tej kompresji. Jaką wartość nie wpisze zdjęcie wygląda tak samo beznadziejnie. Co jeszcze można sprawdzić? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 3.05.2003 Skąd: Głogów Ostrzeżenie: (0%) ![]() ![]() |
Zobacz to, napisałem na szybko...
[php:1:f32fb686ff]<? if(!$quality) {$quality=100;} if($folder=="") { $file="$photo"; } else { $file="$folder/$photo"; } $srcImg = ImageCreateFromJpeg("$file"); $orginalWidth = ImageSX($srcImg); $orginalHeight = ImageSY($srcImg); if (!$width) { $newWidth=$orginalWidth; $newHeight=$orginalHeight; } else { $org = ($width*100)/$orginalWidth; (int)$newWidth = ($orginalWidth*$org)/100; (int)$newHeight = ($orginalHeight*$org)/100; $newWidth = $newWidth-1; $newHeight = $newHeight-1; } $dstImg=ImageCreate($newWidth, $newHeight); ImageCopyResized($dstImg,$srcImg,0,0,0,0,$newWidth,$newHeight,ImageSX($srcImg),I ageSY($srcImg)); header ("Content-type: image/jpeg"); ImageJpeg($dstImg, '', $quality); ?> [/php:1:f32fb686ff] Zdjęcie wstaw tak... Kod <a href=katalog/zdjecie.jpg target=_blank><img border=0 src=resize.php?quality=70&folder=tutaj_katalog&photo=tutaj_url_fotki&width=100>
Mam nadzieje że o to chodziło... |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 12.07.2003 Skąd: Chełm Ostrzeżenie: (0%) ![]() ![]() |
No, niezupełnie o to. Ale dzięki za chęci. Mam podobny skrypcik. I problem w tym, że właśnie tak jak by nie słuchał, że ma zastosować taką a nie inną kompresję. Próbowałem na różne sposoby i nic.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 12.07.2003 Skąd: Chełm Ostrzeżenie: (0%) ![]() ![]() |
Ręce mi opadają. Skrypt niby działa, zmienia wielkość w locie, ale coś nie tak z fotkami.
Niby jest to ?jpg?, ale nie jest. Obrazek jest pokazywany jedynie w kilku kolor w nim występujących. Tak jak GIF po redukcji palety kolorów. Co może być nie tak. Nie działa ani na localhost , ani na serwerze. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 12.07.2003 Skąd: Chełm Ostrzeżenie: (0%) ![]() ![]() |
Mam taki skrypt. Może ktoś mi powie dlaczego nie działa.
[php:1:d1a7feff56]<?php <? if(!$max_szerokosc) $max_szerokosc=250; if(!$max_wysokosc) $max_wysokosc=350; $rozmiar=GetImageSize($_GET['obrazek']); $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($_GET['obrazek']); $prz=ImageCreate($nowa_szerokosc, $nowa_wysokosc); ImageCopyResized($prz, $zrd, 0, 0, 0, 0, $nowa_szerokosc, $nowa_wysokosc, $szerokosc, $wysokosc); header("Content-type: image/jpeg"); ImageJpeg($prz, "", 90); ImageDestroy($zrd); ImageDestroy($prz); ?> [/php:1:d1a7feff56] A zdjęcie pokazuję tak: [php:1:d1a7feff56]<?php <img src="katalog/zmien_obrazek.php?obrazek=fotka.jpg" border="0" alt="" /> ?>[/php:1:d1a7feff56] |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 0 Dołączył: 13.04.2003 Skąd: Poznan Ostrzeżenie: (0%) ![]() ![]() |
Jezeli chodzi o jakosc miniaturek to zmien:
[php:1:173d7e144e]<?php $prz=ImageCreate($nowa_szerokosc, $nowa_wysokosc); ?>[/php:1:173d7e144e] na: [php:1:173d7e144e]<?php $prz=ImageCreateTrueColor($nowa_szerokosc, $nowa_wysokosc); ?>[/php:1:173d7e144e] |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 05:32 |