v2.5.2
Giriş yap

Görsel Upload Ederken Piksel Bozulması Hatası

ilkertuncer
527 defa görüntülendi ve 1 kişi tarafından değerlendirildi

Merhabalar.

Ben resmimi 271 x 150 ebatında küçülteceğim.

Resmin el ile manuel olarak yüksekliği ve genişiliği girilerek 271 x 150 şeklinde küçültülmüş hali: https://prnt.sc/a9zWwnzBToGR

Sizin yazdığınız sistem ile 271 x 150 şeklinde küçültülmüş hali: https://prnt.sc/naT6BwWtmXpP

Umarım resmin renk bozukluğunu iyi bir şekilde açıklayabilmişimdir. Bu sorun nasıl çözülebilir?

Kodum:

<?php  
    error_reporting(E_ALL);
    
    $host = 'localhost';
    $db   = 'lpanel';
    $user = 'root';
    $pass = '';
    $charset = 'utf8mb4';
    $options = [
        \PDO::ATTR_ERRMODE            => \PDO::ERRMODE_EXCEPTION,
        \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
        \PDO::ATTR_EMULATE_PREPARES   => false,
    ];
    $dsn = "mysql:host=$host;dbname=$db;charset=$charset";
    try {
         $pdo = new \PDO($dsn, $user, $pass, $options);
    } catch (\PDOException $e) {
         throw new \PDOException($e->getMessage(), (int)$e->getCode());
    } 
    function compress_image($source_url, $destination_url, $quality) 
    {
    
        $info = getimagesize($source_url);
    
            if ($info['mime'] == 'image/jpeg')
                  $image = imagecreatefromjpeg($source_url);
    
            elseif ($info['mime'] == 'image/gif')
                  $image = imagecreatefromgif($source_url);
    
          elseif ($info['mime'] == 'image/png')
                  $image = imagecreatefrompng($source_url);
    
            imagejpeg($image, $destination_url, $quality);
        return $destination_url;
    }
    
    //Create Thumb Image
    function create_thumb_image($target_folder ='',$thumb_folder = '', $thumb_width = '',$thumb_height = '')
     {  
         //folder path setup
             $target_path = $target_folder;
             $thumb_path = $thumb_folder;  
              
    
             $thumbnail = $thumb_path;
             $upload_image = $target_path;
    
                list($width,$height) = getimagesize($upload_image);
                $thumb_create = imagecreatetruecolor($thumb_width,$thumb_height);
                switch($file_ext){
                    case 'jpg':
                        $source = imagecreatefromjpeg($upload_image);
                        break;
                    case 'jpeg':
                        $source = imagecreatefromjpeg($upload_image);
                        break;
                    case 'png':
                        $source = imagecreatefrompng($upload_image);
                        break;
                    case 'gif':
                        $source = imagecreatefromgif($upload_image);
                         break;
                    default:
                        $source = imagecreatefromjpeg($upload_image);
                }
           imagecopyresized($thumb_create, $source, 0, 0, 0, 0, $thumb_width, $thumb_height, $width,$height);
                switch($file_ext){
                    case 'jpg' || 'jpeg':
                        imagejpeg($thumb_create,$thumbnail,100);
                        break;
                    case 'png':
                        imagepng($thumb_create,$thumbnail,100);
                        break;
                    case 'gif':
                        imagegif($thumb_create,$thumbnail,100);
                         break;
                    default:
                        imagejpeg($thumb_create,$thumbnail,100);
                }
       }
    ?>
    <?php
    if(isset($_POST['submit'])){
    	$file_name= str_replace(" ","-",$_FILES['resim']['name']);
    	$resim=rand(0,99999)."_".$file_name;
    	$tpath1='images/'.$resim;        
    	$pic1=compress_image($_FILES["resim"]["tmp_name"], $tpath1, 90);
    
    	$thumbpath='thumbs/'.$resim;   
    	$thumb_pic1=create_thumb_image($tpath1,$thumbpath,'271','150');
    	$file_name= str_replace(" ","-",$_FILES['resim_kucuk']['name']);
    	$resim_kucuk=rand(0,99999)."_".$file_name;
    
         
        $data = [
        'resim' => $resim
        ];
    $sql = "INSERT INTO posts (image_url) VALUES (:resim)";
    $stmt= $pdo->prepare($sql);
    $stmt->execute($data);
    
      		 		
        		header( "Location:index.php");
        		exit;	
    
    		 
    	}
    
    
    ?>
    
                <div class="content-page">
                    <div class="content">
    
                        <!-- Start Content-->
                        <div class="container-fluid">
    
                            <div class="row">
                                <div class="col-12">
                                    <div class="card">
                                        <div class="card-body">
                                            <h4 class="header-title">File Upload</h4>
                
                                            <form action="" method="post" enctype="multipart/form-data">
                                                <div class="fallback">
                                                    <input type="file" name="resim" data-height="300" />
                                                </div>
    
                                        </div> <!-- end card-body-->
                                    </div> <!-- end card-->
                                </div><!-- end col -->
                            </div>
                            <!-- end row -->  
    
                            
                            
    
                      <div class="form-group">
                        <div class="col-md-9 col-md-offset-4">
                          <button type="submit" name="submit" class="btn btn-primary">Save</button>
                          <button type="reset" class="btn btn-danger">Clear</button>
                        </div>
                      </div> 
    				  
                                            </form>
                        </div> <!-- container -->
    
                    </div> <!-- content -->
ilkertuncer
937 gün önce

merahablar @codepacks. Yardımların için çok teşekkür ederim. Kodun sorunsuz bir şekilde işe yaradı! Fakat benim php de takıldığım bazı yerler var. Php de yeniyim ve kendimi geliştirmek istiyorum.
Yazmış olduğum panelim için bir TinyMCE editör'e ihtiyacım var. Hiçbir yerde bulamadım. Yardımcı olabilirsen çok memnun olurum