Resmi sıkıştırmak Yani ben aşağıdaki kodu yazdım - Ben kundakçı sayfa hız programını kullanıyordum ve verilen önerilerden biri görüntülerini sıkıştırmak oldu
$filename="http://localhost.com/snapshots/picture.png"; $img = imagecreatefrompng($filename); $this->_response->setHeader('Content-Type', 'image/png'); imagepng($img,null,9); imagedestroy($img);
Now the actual image size is 154K So I experimented by giving different quality levels and here is what I found
imagepng($img,null,0); --> Size = 225K imagepng($img,null,1); --> Size = 85.9K imagepng($img,null,2); --> Size = 83.7K imagepng($img,null,3); --> Size = 80.9K imagepng($img,null,4); --> Size = 74.6K imagepng($img,null,5); --> Size = 73.8K imagepng($img,null,6); --> Size = 73K imagepng($img,null,7); --> Size = 72.4K imagepng($img,null,8); --> Size = 71K imagepng($img,null,9); --> Size = 70.6K
Bu sonuçlar doğru bakmak mı - görüntü boyutu gerçek boyutundan daha büyük - kalitesi 0 ile neden emin değilim.
İkincisi, bu performansını artırmak için tarayıcıda onları render öncesi görüntüleri sıkıştırmak için PHP hakkında gitmek için en iyi yoldur.
Önerileri dayanarak, bu onun daha iyi tasarruf zamanda bir kez görüntüyü sıkıştırmak için - Ben çırpıda atış oluşturmak için flaş programı tarafından çağrılan kodunu kazılırken -
$video = $this->_getParam('video'); $imgContent = base64_decode($this->_getParam('snapshot')); file_put_contents("snapshots/" . $video . ".png", $imgContent);
EDITED Based on Alvaro's suggestion, I have made the following modification to the code which generates a much small jpg file
$video = $this->_getParam('video'); $imgContent = base64_decode($this->_getParam('snapshot')); file_put_contents("snapshots/" . $video . ".png", $imgContent); $filename="snapshots/".$video.".png"; $img = imagecreatefrompng($filename); imagejpeg($img,'test.jpg',75);
Yani şimdi bu 3 aşamalı bir işlemdir
- file_put_contents kullanarak ilk görüntüyü oluşturmak
- Dosyayı sıkıştırmak ve daha küçük bir görüntü oluşturmak için imagecreatefrompng ve imagejpeg kullanın
- Orig görüntüyü silmek
Bu konuda gitmek için en iyi en uygun yoldur.