2
我想從我的服務器中的位置讀取圖像,然後畫上線,然後在位置覆蓋的圖像。 繪製圖像的形狀和它保存在PHP
我的代碼如下:
function drawShapes($src_path, $json)
{
echo "---inside draw Sharpes-------";
$x1= $json['x1'];
$y1= $json['y1'];
$x2= $json['x2'];
$y2= $json['y2'];
$x3= $json['x3'];
$y3= $json['y3'];
$x4= $json['x4'];
$y4= $json['y4'];
$type = exif_imagetype($src_path);
$allowedTypes = array(
1, // [] gif
2, // [] jpg
3, // [] png
);
if (!in_array($type, $allowedTypes)) {
return false;
}
switch ($type) {
case 1 :
$im = imageCreateFromGif($src_path);
break;
case 2 :
$im = imageCreateFromJpeg($src_path);
break;
case 3 :
$im = imageCreateFromPng($src_path);
break;
}
if (!$im)
return false;
imagesetthickness($im, 5);
$color = imagecolorallocate($im, 255, 255, 255);
echo $color;
imageline($im, $x1, $y1, $x2, $y2, $color);
imageline($im, $x2, $y2, $x3, $y3, $color);
imageline($im, $x3, $y3, $x4, $y4, $color);
imageline($im, $x4, $y4, $x1, $y1, $color);
header("Content-type: image/jpeg");
imagejpeg($im,$src_path);
imagedestroy($im);
}
這裏$ src_path = 「上傳/ case.jpg」 - 上傳是我的解決方案& case.jpg一個文件夾裏面是圖像文件名。 但我收到圖像丟失圖標作爲輸出。我做錯了什麼?
如何解決呢?謝謝。
感謝很多:)它的工作。我想重定向到另一個php文件,它應該在img標籤中顯示新圖像。所以我使用了代碼session_start(); $ _SESSION ['url'] = $ url_path; header(「Location:Result.php」); - 「退出」後我粘貼了這段代碼 - 但是我將圖像丟失圖標作爲輸出。它以前獨立工作。 – user3354361
它給出警告:警告:session_start():無法發送會話緩存限制器 - 已發送頭文件 – user3354361
將此代碼添加到您的Result.php:'session_start(); $ src_path = $ _SESSION ['url']; $ fp =的fopen($ src_path, 'RB');頭部( 「內容類型:image/JPEG」);標題( 「內容長度:」 文件大小($ src_path)); fpassthru($ FP);出口;' 然後,在你的函數drawShapes替換此代碼: '$計劃生育=的fopen($ src_path, 'RB');標題(「Content-Type:image/jpeg」); header(「Content-Length:」。filesize($ src_path)); fpassthru($ FP);出口;' 利用該: '在session_start(); $ _SESSION ['url'] = $ src_path;標題(「Location:Result.php」);' –