CURL sonra yeniden örneklemek kullanarak uzaktan görüntü almak

1 Cevap php

Ben, bir web sunucusu uzak bir görüntü almak onu yeniden örneklemek, ve sonra tarayıcıya kadar hizmet ve bir dosyaya kaydetmek mümkün olmak istiyorum. İşte ben bugüne kadar ne var:

$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "$rURL");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
$out = curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);

$imgRes = imagecreatefromstring($out);
imagejpeg($imgRes, $filename, 70);

header("Content-Type: image/jpg");
imagejpeg($imgRes, NULL, 70);
exit();

Update

Aşağıdaki tartışma dayalı doğru cevabı yansıtacak şekilde güncellendi

1 Cevap

Sen kullanarak bir GD kaynak haline dosyasını alıp imagecreatefromstring() yapabilirsiniz:

imagecreatefromstring () Verilen verilerden elde görüntüyü temsil eden bir resim tanıtıcısı döndürür. PHP sizin desteklediği takdirde bu tür otomatik olarak tespit edilecek: JPEG, PNG, GIF, WBMP ve GD2.

oradan, o imagecopyresampled() kullanarak oldukça basittir.

Çıktısı kullanarak imagejpeg() ya da hangisi çıkış biçimi size en uygun.

Bir dosya adı ile bir çıkış yapmak:

imagejpeg($image_resource, "/path/to/image.jpg");

sonra tarayıcıya aynı kaynak gönderin:

header("Content-type: image/jpeg");
imagejpeg($image_resource);

görüntünün biçimine bağlı olarak, bunun yerine imagepng () veya imagegif () işlevleri kullanmak isteyebilirsiniz.

Farklı çıkış biçimleri giriş dosya türüne bağlı olarak çalışmak isteyebilirsiniz. Sen getimagesize() kullanarak giriş dosya türünü getirebilir.

Eğer $quality parametresini kullanarak çıkan JPEG görüntünün kalitesini ayarlayabilirsiniz unutmayın. Standart oldukça berbat bakabilirsiniz% 75'tir.