이미지를 저장하지 않고 php-image-magician을 사용하여 업로드 된 이미지와 텍스트 워터 마크를 다른 크기로 표시하려고합니다.PHP 이미지 마술사를 사용하여 이미지 크기 조정
여기에 코드입니다 :
<?php
$errors = array();
function mimeValidator($imagefile)
{
$imageInfo = getimagesize($imagefile);
$allowedMimes = array('image/jpg', 'image/jpeg', 'image/png');
if(!in_array($imageInfo['mime'], $allowedMimes))
$errors[] = "Only jpg and png images are supported";
}
function renderImage($imageSource, $watermark, $fontSize, $font)
{
$imageInfo = getimagesize($imageSource);
list($width,$height) = getimagesize($imageSource);
if($imageInfo['mime'] == 'image/jpg' || $imageInfo['mime'] == 'image/jpeg')
$imageSource = imagecreatefromjpeg($imageSource);
elseif($imageInfo['mime'] == 'image/png')
$imageSource = imagecreatefrompng($imageSource);
$image = imagecreatetruecolor($width, $height);
$blue = imagecolorallocate($image, 79, 166, 185);
$text = imagettftext($imageSource, $fontSize, 0, 20, ($height-20), $blue, $font, $watermark);
ob_start();
imagejpeg($imageSource);
$image = ob_get_contents();
ob_end_clean();
return base64_encode($image);
}
?><html>
<head>
<title>
image Watermark and resize
</title>
<style type="text/css">
body{ width:800px; margin: 15px auto; padding:0px; font-family: arial}
</style>
</head>
<body>
<form name="imageUpload" id="imageUpload" method="post" enctype="multipart/form-data" >
<fieldset>
<legend>Image text watermark</legend>
Text: <input type="text" name="text" id="text"/><br />
Image: <input type="file" name="image" id="image"/><br />
<input type="submit" name="submit" id="createmark" value="Submit" />
</fieldset>
<?php
if(isset($_POST['submit']))
{
if($_POST['text'] == '')
$errors[] = "Text is too short";
if($_FILES['image']['tmp_name'] == '')
$errors[] = "Please upload a image";
else
mimeValidator($_FILES['image']['tmp_name']);
if(count($errors) == 0)
{
include('php-image-magician/php_image_magician.php');
$magicianObj = new imageLib($_FILES["image"]["tmp_name"]);
$magicianObj -> resizeImage(100, 200);
$magicianObj -> saveImage($imagename);
echo "<img src=\"data:image/gif;base64," . renderImage($_FILES["image"]["tmp_name"], $_POST['text'], 30, "./arial.ttf") . "\" />";
}
else
{
echo "<ul>";
foreach($errors as $error)
echo "<li>{$error}</li>";
echo "</ul>";
}
}
?>
</form>
</body>
</html>
내가 오류 "파일을 C : \ XAMPP \ tmp에 php9E3D.tmp \ 없거나 잘못되었습니다"얻고 난이의 newbee입니다 합니다. 도와주세요.
전화하세요. 거기에 PHP를위한 많은 크기 조정 스크립트가 제공 될 수 있습니다. 실제로는 잘 작성되었습니다. 그냥 간단한 Google 검색을 수행하십시오. – OptimusCrime