2012-05-28 2 views
0

이 코드에서 html2canvas를 사용하여 화면 캡처 jpg를 생성 중입니다. 그러나 나는 전체 화면을 움켜 잡을 정도로 특정 div를 대상으로 삼을 수 없습니다.base64_decode에서 PHP 자르기 이미지

$canvasImg = $_POST['img']; 
$data = base64_decode($canvasImg); 
$File = "z.jpg"; 
$Handle = fopen($File, 'w'); 
fwrite($Handle, $data); 
fclose($Handle); 


질문 : 어떻게 이미지를자를 수 있습니다?

이 내 attampt도

$canvasImg = $_POST['img']; 
$image = base64_decode($canvasImg); 
$dest_image = 'z.jpg'; 
$img = imagecreatetruecolor('200','150'); 
$org_img = imagecreatefromstring($image); 
$ims = getimagesize($image); 
imagecopy($img,$org_img, 0, 0, 20, 20, 200, 150); 
imagejpeg($img,$dest_image,90); 
imagedestroy($img); 



하지만 메신저는 오류
Warning: getimagesize(�PNG ) [<a href='function.getimagesize'>function.getimagesize</a>]: failed to open stream: Invalid argument

+0

당신은 imagecreatefromstring() http://php.net/manual/en/function.imagecreatefromstring.php 당신은 imagecreatefrompng()에 이미지를 전달하지 않는 –

+0

을 찾고, 당신의 이미지 변수 –

+0

다시 몇 가지 오류가 편집 내 질문, 구현'imagecreatefromstring()' –

답변

0

getimagesize($image);의 첫 번째 매개 변수는 이미지 파일 이름이어야합니다.

+1

당신이 즉석 에서이 작업을하고 싶다면'imagesx ($ image)'와'imagesy ($ image)'가 x와 y 크기 값을 반환하기 위해 필요한 것이다. 적절하게. – Death

1

당신은 imagecreatefromstring();하지 imagecreatefrompng(); 원하는을 받고있다. 이렇게하면 PHP 이미지 객체로 변환되어 JPEG로 출력 할 수 있습니다. imagejpeg();

1

PNG 버퍼를 함수에 전달한다는 문제가 있습니다. 그러므로 왜 PNG (68 50 4e 47 0d 0a 1a 0a --- 또는 --- 0x89 "PNG"CR LF 0x1A LF)의 매직 넘버를 얻습니다. 파일을 임시 위치에 저장하고 getimagesize 등의 위치를 ​​전달해야합니다. 따라서 그들이 왜 물줄기에 대해 불평하는지.

imagecreatefromstring(...)을 사용하면 버퍼를 가져 와서 핸들을 리소스에 출력 할 수 있습니다.