إذا كنت معتادًا على مكتبة PHP GD، فليس من الصعب على الإطلاق فهم هذه المقالة!
<?php
/****************************************************** ***** *******************************
وصف المعلمة:
$max_file_size: الحد الأقصى لحجم ملف التحميل، الوحدة BYTE
$destination_folder: تحميل مسار الملف
علامة مائية $: ما إذا كنت تريد إضافة علامة مائية (1 يعني إضافة علامة مائية، والبعض الآخر يعني عدم إضافة علامة مائية)
؛
1. قم بإزالة علامة ; الموجودة أمام السطر "extension=php_gd2.dll" في ملف PHP.INI، لأننا نحتاج إلى استخدام مكتبة GD؛
2. قم بتغيير الامتداد_dir = إلى الدليل الذي يوجد به ملف php_gd2.dll الخاص بك؛
*************************************************************************************************************************************************************************** * ********************************/
// تحميل قائمة أنواع الملفات
$uptypes=صفيف(
"صورة / JPG"،
"صورة / JPEG"،
"صورة / png"،
"صورة/بجبيج"،
"صورة/جيف"،
"صورة/bmp"،
"صورة/x-png"
);
$max_file_size=2000000; // حد حجم الملف المرفوع، الوحدة BYTE
$destination_folder="uploadimg/"; // مسار تحميل الملف
$watermark=1 // ما إذا كنت تريد إضافة علامة مائية (1 يعني إضافة علامة مائية، والبعض الآخر يعني عدم إضافة علامة مائية)؛
$watertype=1; // نوع العلامة المائية (1 نص، 2 صورة)
$waterposition=1; // موضع العلامة المائية (1 هو الزاوية اليسرى السفلية، 2 هو الزاوية اليمنى السفلية، 3 هو الزاوية اليسرى العليا، 4 هو الزاوية اليمنى العليا، 5 في المنتصف)؛
$waterstring=" http://www.xplore.cn/ "; // سلسلة العلامة المائية
$waterimg="xplore.gif"; // صورة العلامة المائية
$imgpreview=1; // ما إذا كان سيتم إنشاء صورة معاينة (يعني 1 أنه تم إنشاؤها، ولا يتم إنشاءها بواسطة الآخرين)؛
$imgpreviewsize=1/2; // نسبة الصورة المصغرة
?>
<أتش تي أم أل>
<الرأس>
<title>برنامج تحميل الصور Zwell</title>
<نمط النوع = "نص/CSS">
<!--
جسم
{
حجم الخط: 9pt؛
}
مدخل
{
لون الخلفية: #66CCFF؛
الحدود: 1 بكسل داخلي #CCCCCC؛
}
-->
</نمط>
</الرأس>
<الجسم>
<form enctype="multipart/form-data" Method="post" name="upform">
تحميل الملفات:
<اسم الإدخال = "upfile" نوع = "ملف">
<input type="submit" value="تحميل"><br>
أنواع الملفات المسموح بتحميلها هي:<?=implode(', ',$uptypes)?>
</form>
<?php
إذا ($_SERVER['REQUEST_METHOD'] == 'POST')
{
إذا (!is_uploaded_file($_FILES["upfile"][tmp_name]))
// هل الملف موجود؟
{
صدى "الصورة غير موجودة!";
مخرج؛
}
$file = $_FILES["upfile"];
إذا($max_file_size < $file["size"])
// التحقق من حجم الملف
{
صدى "الملف كبير جدًا!";
مخرج؛
}
إذا(!in_array($file["type"], $uptypes))
//تحقق من نوع الملف
{
echo "نوع الملف غير متطابق!".$file["type"];
مخرج؛
}
إذا (! file_exists($destination_folder))
{
mkdir($destination_folder);
}
$filename=$file["tmp_name"];
$image_size = getimagesize($filename);
$pinfo=pathinfo($file["name"]);
$ftype=$pinfo['امتداد'];
$destination = $destination_folder.time().".".$ftype;
إذا (file_exists($destination) && $overwrite != true)
{
echo "الملف الذي يحمل نفس الاسم موجود بالفعل";
مخرج؛
}
إذا (!move_uploaded_file ($اسم الملف، $destination))
{
صدى "خطأ في نقل الملف"؛
مخرج؛
}
$pinfo=pathinfo($destination);
$fname=$pinfo[basename];
echo " <font color=red>تم الرفع بنجاح</font><br>اسم الملف: <font color=blue>".$destination_folder.$fname."</font><br>";
صدى "العرض:".$image_size[0];
صدى "الطول:".$image_size[1];
echo "<br> size:".$file["size"]." bytes"
;
{
$iinfo=getimagesize($destination,$iinfo);
$nimage=imagecreatetruecolor($image_size[0],$image_size[1]);
$white=imagecolorallocate($nimage,255,255,255);
$black=imagecolorallocate($nimage,0,0,0);
$red=imagecolorallocate($nimage,255,0,0);
ملء الصورة($nimage,0,0,$white);
التبديل ($iinfo[2])
{
الحالة 1:
$simage =imagecreatefromgif($destination);
استراحة؛
الحالة 2:
$simage =imagecreatefromjpeg($destination);
استراحة؛
الحالة 3:
$simage =imagecreatefrompng($destination);
استراحة؛
الحالة 6:
$simage =imagecreatefromwbmp($destination);
استراحة؛
تقصير:
يموت("نوع الملف غير مدعوم";
مخرج؛
}
imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);
imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white
Switch($watertype)
{
الحالة 1: // إضافة سلسلة علامة مائية
imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);
استراحة؛
الحالة 2: // إضافة صورة العلامة المائية
$simage1 =imagecreatefromgif("xplore.gif";
imagecopy($nimage,$simage1,0,0,0,0,85,15);
تدمير الصورة($simage1);
استراحة؛
}
التبديل ($iinfo[2])
{
الحالة 1:
//imagegif($nimage, $destination);
imagejpeg($nimage, $destination);
استراحة؛
الحالة 2:
imagejpeg($nimage, $destination);
استراحة؛
الحالة 3:
imagepng($nimage, $destination);
استراحة؛
الحالة 6:
imagewbmp($nimage, $destination);
//imagejpeg($nimage, $destination);
استراحة؛
}
// الكتابة فوق الملف الأصلي الذي تم تحميله
تدمير الصورة($nimage);
تدمير الصورة($simage);
}
إذا($imgpreview==1)
{
صدى "<br>معاينة الصورة:<br>";
echo "<img src="".$destination."" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize);
echo " alt="معاينة الصورة:rاسم الملف:".$destination."rوقت التحميل:">";
}
}
?>
</الجسم>
</html>
أخيرًا، أعتقد أنه من الضروري الحديث عن مبدأ وضع العلامات المائية على الصور:
الحصول على معلومات الملف الذي تم تحميله، وإنشاء صورة ملونة حقيقية، وتعيين نظام ألوان وملء الصورة.
أنشئ رسمًا عن طريق الحكم على نوع الملف، ثم انسخه إلى الرسم الذي تم إنشاؤه في الأصل، ثم املأ وأنشئ مستطيلًا، جاهزًا للكتابة على imagestring() أو
برنامج الصورة الأصلي لتحديد نوع العلامة المائية: أحدهما عبارة عن سلسلة، والآخر عبارة عن سلسلة الآخر هو إضافة كائن رسومي في الأعلى.