Mình có 3 file sau đây :
1 - getImage.php
Code:
<?php
header("Content-Type: image/jpg");
$image = imagecreatefromjpeg("img_1.jpg");
$image_width = imagesx($image);
$image_height = imagesy($image);
?>
2 - processImage.php
Code:
<?php
include_once("getImage.php");
$param = $_GET["pr"];
for ($h = 0; $h < $image_height; $h++) {
for ($w = 0; $w < $image_width; $w++) {
$colors = imagecolorsforindex($image, imagecolorat($image, $w, $h));
$colors['red'] = max(0, min(255, $colors['red'] + $param));
$colors['green'] = max(0, min(255, $colors['green'] + $param));
$colors['blue'] = max(0, min(255, $colors['blue'] + $param));
$new_color = imagecolorallocate($image, $colors['red'], $colors['green'], $colors['blue']);
imagesetpixel($image, $w, $h, $new_color);
}
}
imagejpeg($image, "", 100);
?>
3 - index.php
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script type="text/javascript">
function displayImg(str)
{
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser does not support AJAX!");
return false;
}
}
}
//Dinh nghia mot url de gui toi server
//File deldata.php la file chua code truy van den database
var url = "img.php";
//them tham so q toi url
url = url+"?pr="+str;
//tao doi tuong xmlHTTPObject
//doi tuong xu ly ham goi stateChanged khi co su thay doi
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText;
}
}
//mo doi tuong xmlHttp voi url
xmlHttp.open("GET",url,true);
//Gui yeu cau den server
xmlHttp.send(null);
}
</script>
</head>
<body>
<form>
<input type="text" id="opacity" onblur="displayImg(this.value)" />
</form>
<div id="txtHint"><img id="img" src="img_1.jpg" /></div>
</body>
</html>
Nội dung : Mình muốn chỉnh sửa độ sáng (brightness) của một image bằng php(áp dụng ajax).Sau khi gõ : localhost/index.php rồi từ input text mình nhập vào một số int ví dụ là 50 thì kết quả trả ra như sau :
Code:
�����JFIF����������K� {�/���t�n���x�o�.�^�~�����d���`�#��������+�x⽛�~(�����}��,:w����� ���O�����ty��b��n������j����eh���k�縼���-յ���{��? �l����2_٩��������ڣ����~Y�R�}mu{z���{���Έ~�4����n�k�_�\�������nM|O��E��Fh&����E����?����~(�����E�����].��_n�����c�L�с�b��N_�f��gu��Y��K������~�����&~$�?�����}�Xy���'�3��~u�^(���^��R�����캖�k��?������y��C�b?�O2�v蒲���_/[��Z��ݒ��������5�x^������5_�iz%���}�������}/R�N��< 4s��k�^��τ��m������5+����\�W_n�����}�q���f1�1�~����Y��7��ZY�mmU�����j�����͞ �K�_G�<���W��5�څ��^u�����+�?|>��֑��=Vqq�i��j�6��X���5㷷 �_B^|>�>,k�$I}���~ˡi�?�����....
Mình không biết nguyên nhân lỗi này xuất phát từ đâu nên không thể khắc phục, mong mọi người trong diễn đàn giúp đỡ.Nếu được xin hãy hướng dẫn cụ thể vì sao lại có tình trạng này xảy ra.Mình cũng đã test kỹ thì thấy tham số nhận từ input text là đúng.Cám ơn mọi người rất nhiều.
Nói thêm: Nếu chạy thẳng file processImage.php rồi thay biến $param = 50 thì kết quả độ sáng của ảnh sẽ thay đổi nhưng chạy file index.php thì lại xuất kết quả như trên.