업로드 한 파일 업로드 스크립트가 업로드 될 때 흐릿한 이미지를 업로드합니다! 이것은 내가 현재 잘못하고있는 것을 알아 내려고하는 현재 스크립트입니다. 스크립트는 이미지를 .png로 업로드하며 사용자 이름은 현재 로그인 한 사용자의 실제 사용자 이름입니다.PHP 파일 업로드 스크립트로 인해 흐릿한 이미지 생성
원본 이미지는 17x22이므로 흐릿하게 보이지 않습니다. 17px로
<?php
include('../class/resize.php');
//error_reporting(0);
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
$path = "../files/cloaks/"; //set your folder path
$filename = $_FILES['photoimg']['tmp_name']; //get the temporary uploaded image name
$valid_formats = array("jpg", "png", "gif", "bmp", "jpeg","GIF","JPG","PNG", "JPEG"); //add the formats you want to upload
$name = $_FILES['photoimg']['name']; //get the name of the image
$size = $_FILES['photoimg']['size']; //get the size of the image
if(strlen($name)) //check if the file is selected or cancelled after pressing the browse button.
{
list($txt, $ext) = explode(".", $name); //extract the name and extension of the image
if(in_array($ext,$valid_formats)) //if the file is valid go on.
{
if($size < 2098888) // check if the file size is more than 2 mb
{
$actual_image_name = $_POST['fname']; //actual image name going to store in your folder
$tmp = $_FILES['photoimg']['tmp_name'];
if(move_uploaded_file($tmp, $path.$actual_image_name)) //check the path if it is fine
{
move_uploaded_file($tmp, $path.$actual_image_name); //move the file to the folder
$dburl = ('../files/cloaks/'.$actual_image_name.'');
$image = new ZiResize();
$image->load($dburl);
$image->resize(22,17);
$image->save($path.$actual_image_name);
//display the image after successfully upload
echo "<img src='files/cloaks/".$actual_image_name."' class='preview'> <input type='hidden' name='actual_image_name' id='actual_image_name' value='$actual_image_name' />";
}
else
{
echo "failed";
}
}
else
{
echo "Error! Max image size is 2 MB!";
}
}
else
{
echo "Error! Invalid image format!";
}
}
else
{
echo "Error! No file selected!";
}
exit;
}
?>
resize.php 코드
<?php
class ZiResize {
var $image;
var $image_type;
function load($filename) {
$image_info = getimagesize($filename);
$this->image_type = $image_info[2];
if($this->image_type == IMAGETYPE_JPEG) {
$this->image = imagecreatefromjpeg($filename);
} elseif($this->image_type == IMAGETYPE_GIF) {
$this->image = imagecreatefromgif($filename);
} elseif($this->image_type == IMAGETYPE_PNG) {
$this->image = imagecreatefrompng($filename);
}
}
function save($filename, $image_type=IMAGETYPE_JPEG, $compression=75, $permissions=null) {
if($image_type == IMAGETYPE_JPEG) {
imagejpeg($this->image,$filename,$compression);
} elseif($image_type == IMAGETYPE_GIF) {
imagegif($this->image,$filename);
} elseif($image_type == IMAGETYPE_PNG) {
imagepng($this->image,$filename);
}
if($permissions != null) {
chmod($filename,$permissions);
}
}
function output($image_type=IMAGETYPE_JPEG) {
if($image_type == IMAGETYPE_JPEG) {
imagejpeg($this->image);
} elseif($image_type == IMAGETYPE_GIF) {
imagegif($this->image);
} elseif($image_type == IMAGETYPE_PNG) {
imagepng($this->image);
}
}
function getWidth() {
return imagesx($this->image);
}
function getHeight() {
return imagesy($this->image);
}
function resizeToHeight($height) {
$ratio = $height/$this->getHeight();
$width = $this->getWidth() * $ratio;
$this->resize($width,$height);
}
function resizeToWidth($width) {
$ratio = $width/$this->getWidth();
$height = $this->getheight() * $ratio;
$this->resize($width,$height);
}
function scale($scale) {
$width = $this->getWidth() * $scale/100;
$height = $this->getheight() * $scale/100;
$this->resize($width,$height);
}
function resize($width,$height) {
$new_image = imagecreate($width, $height);
imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight());
$this->image = $new_image;
}
}
?>
문제는 'ZiResize' 클래스에 있습니다. 아마 그것의 문서를 확인하십시오. 스크린 샷의 예를 보여줄 수 있습니까? –
예제 스크린 샷은 정확히 무엇입니까? 크기 조정 코드? – user2140088
이게 뭐야? 크기를 조정하여 이미지가 흐려질 수 있습니다. $ image-> resize (22,17)' – chriz