09/10/2018, 23:56

Anh em chỉ dùm cái phần upload và chỉnh sửa hình ảnh với !

Mọi người có ai biết cách up hình lên server rồi chỉnh sửa lại chiều cao, chiều rộng của hình mới up lên chỉ mình với !!! Cảm ơn trước ..
Nhân tiện, cho mình hỏi có cách nào ghép các hình lại với nhau bằng PHP code không để mình làm cái hình nhỏ gồm các chữ cái và số chống Spam khi đăng kí thành viên và tìm kiếm !!!

Cảm ơn các anh chị nhiều !

Em đang làm 1 cái forum tổng hợp + photo gallery www.zhome.info nên đang thắc mắc chỗ đó.
kiem_bo viết 01:59 ngày 10/10/2018
hàng tớ sưu tầm
$filename = $_GET['f'];

$percent = $_GET['p'];

list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
imagejpeg($image_p, null, 100);

Khi show hình ra thì <img src="resize1.php?f=hinh.jpg&p=0.2" />
zoejoe viết 02:04 ngày 10/10/2018
Cảm ơn, nhưng cho Phong hỏi cái trang resize1.php sẽ nhập tham số là f=hinh.jpg là hình nằm sẵn trong host hay là sao ?

Ý mình là đầu tiên tạo một form cho phép upload hình lên máy chủ :
Code:
<html>
<body><form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />
</form></body>
</html>
Trang upload_file.php sẽ xử lí như sau :
Code:
<?php
if (($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
&& ($_FILES["file"]["size"] < 20000))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";    
if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>
Sau đó mình muốn trang upload_file.php này khi upload xong sẽ tự động tạo ra 3 hình giống hệt nhau : 1 hình kích thước nhỏ dùng để Preview, một hình kích cỡ lớn hơn để dễ dàng cho cái trang slide sau này và một hình kích cỡ thực !

Nếu hình quá nhỏ thì cái hình 2 sẽ lấy kích thước nguyên bản. Bạn giúp lại mình với !
zoejoe viết 02:02 ngày 10/10/2018
Được gửi bởi kiem_bo
hàng tớ sưu tầm
$filename = $_GET['f'];

$percent = $_GET['p'];

list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
imagejpeg($image_p, null, 100);

Khi show hình ra thì <img src="resize1.php?f=hinh.jpg&p=0.2" />
Không hiểu gì hêt ?! Bạn vui lòng chỉ rõ hơn được không ?!
Cái đoạn mã trên nhúng vào đâu ? Và truyền tham số như thế nào ?
kiem_bo viết 02:03 ngày 10/10/2018
nếu mà bạn sau khi đưa lên server thì

$filename là đường dẫn của hình cần xử lý
list($width, $height) = getimagesize($filename);

$new_width = $width * $percent;
//day la chieu dai cua hinh sau khi xu ly. Vd nhu ta cho no la 100 px. Tuong tu ta co o duoc la chieu cao

$new_height = $height * $percent;
$image_p = imagecreatetruecolor($new_width, $new_height);
//tao 1 hình mới có chiều cao, dài có kích thước đã nói trên
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
imagejpeg($image_p, null, 100);
//hàm này tạo 1 hình mới. Nếu mà bạn muốn tạo 1 tập tin mới của kích thước thì bạn thay imagejpeg($image_p, null, 100); =>imagejpeg($image_p, "hinhmoi.jpg", 100);
Bạn ngồi gõ và xem manual php thì sẽ từ từ hiểu thôi. Cái này lúc đầu tôi có hiểu gì đâu
zoejoe viết 02:13 ngày 10/10/2018
Được gửi bởi kiem_bo
nếu mà bạn sau khi đưa lên server thì

$filename là đường dẫn của hình cần xử lý
list($width, $height) = getimagesize($filename);

$new_width = $width * $percent;
//day la chieu dai cua hinh sau khi xu ly. Vd nhu ta cho no la 100 px. Tuong tu ta co o duoc la chieu cao

$new_height = $height * $percent;
$image_p = imagecreatetruecolor($new_width, $new_height);
//tao 1 hình mới có chiều cao, dài có kích thước đã nói trên
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
imagejpeg($image_p, null, 100);
//hàm này tạo 1 hình mới. Nếu mà bạn muốn tạo 1 tập tin mới của kích thước thì bạn thay imagejpeg($image_p, null, 100); =>imagejpeg($image_p, "hinhmoi.jpg", 100);
Bạn ngồi gõ và xem manual php thì sẽ từ từ hiểu thôi. Cái này lúc đầu tôi có hiểu gì đâu
Thanks ! Cho mình hỏi thêm cái. Có cách nào ghép các hình lại với nhau từ nhiều hình không ?
kiem_bo viết 01:58 ngày 10/10/2018
ôi cái này thì chụi. Bạn làm như php có thể đảm nhiệm luôn photoshop ko bằng
zoejoe viết 01:58 ngày 10/10/2018
Được gửi bởi kiem_bo
ôi cái này thì chụi. Bạn làm như php có thể đảm nhiệm luôn photoshop ko bằng
He he, ai biết, cứ tưởng PHP có thể làm đuơc như vậy !
Vậy bạn có thể chỉ mình cách tạo ra 1 image bao gồm các chũ số và kí tự được không ! Cái đó mình đang bí. Mong bạn có thể chỉ giùm. Nếu không thì không biết www.zhome.info của mình sẽ đi về đâu ?!
Anh em trong diễn đàn ai biết thì chỉ giùm em cái !
kiem_bo viết 01:58 ngày 10/10/2018
bạn hãy chú ý 2 lệnh mình để dấu mũi tên đó. Thêm chữ vào chỉ cần thêm nhiêu đó thôi
$kt=getimagesize($des);
$img=imagecreatetruecolor($w,$h);
$img2=imagecreatefromjpeg($des);
====>$mau=imagecolorallocatealpha($img,45,36,6,5);
imagecopyresampled($img,$img2,0,0,0,0,$w,$h,$kt[0],$kt[1]);
======>imagestring($img,50,90,5,"noi dung cua ban",$mau);
imagejpeg($img,$des,100);
Bài liên quan
0