2017-10-06 6 views
0

PHP에서 imagecopyresized() 함수를 사용하면 이미지 리소스로 반환되며이 이미지에서 이미지 데이터를 얻는 것이 좋습니다. 리소스 또는 파일 또는 문자열의 배열 위치 $ _FILES [] 전역 배열에있는 것과 같은 파일의 여러 데이터를 포함합니다. 감사PHP 이미지 resoure에서 이미지 파일 가져 오기

$source = $_FILES['image']['tmp_name']; 
list($width,$height) = getimagesize($source); 
echo BR.$height." ".$width; 
$desired_height = 28; 
$scale = $width/$height; 
$new_width = $desired_height * $scale; 
$new_height = $desired_height; 
$original_image = imagecreatefromjpeg($source); 
$resized_image = imagecreatetruecolor($new_width, $new_height); 
if(imagecopyresized($resized_image, $original_image, 0, 0, 0, 0, $new_width, $new_height, $width, $height)){ 
    echo BR."image resized".BR; 
} 

i는 데이터베이스에 $resized_image의 위치를 ​​저장할하지만 난이 변수에서 파일 위치에 액세스하는 것 기운 다.

답변

0

이렇게하면 이미지 내용을 $ buffer 변수에 jpeg로 저장합니다.

ob_start(); 
imagejpeg($im, null, 90); 
$buffer = ob_get_contents(); 
ob_end_clean(); 

그런 다음 원하는 경로로 file_put_contents으로 저장하고 데이터베이스의 경로를 저장할 수 있습니다.

Nette\Utils\Image 또는 Intervention\Image, 당신은 더 좋은 API와 제 3 자 라이브러리를 사용할 수 있습니다, 또는 https://secure.php.net/manual/en/function.imagejpeg.php

참조하십시오.

0

imagecreatetruecolor은 메모리에 이미지 리소스를 만들고 그 식별자를 반환합니다. 이미지가 포함 된 실제 파일을 생성하지 않습니다.

같은 사용 imagejpeg : 그것은 만들고 디스크에 이미지 파일을 저장합니다

imagejpeg($resized_image, '/path/to/save/img.jpg')

. 그런 다음 해당 경로를 데이터베이스에 저장할 수 있습니다.

참조 : http://php.net/manual/en/function.imagejpeg.phphttp://php.net/manual/en/function.imagecreatetruecolor.php

0

$의 resized_image는 aFile 변수와 연결되어 있지 않습니다. imagejpeg, imagepng, .. 메서드를 사용하여 리소스를 파일에 저장해야합니다.

imagejpeg($resized_image, 'path/file.jpg'); 
관련 문제