לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 29-04-2008, 19:55
  משתמש זכר yoavmatchulsky yoavmatchulsky אינו מחובר  
 
חבר מתאריך: 15.08.06
הודעות: 1,561
שלח הודעה דרך ICQ אל yoavmatchulsky שלח הודעה דרך MSN אל yoavmatchulsky Facebook profile
[מדריך קצר] הטמעת סימן בתמונות בצורה דינאמית (watermark)

דברים הדרושים להכנה:

  • תמונה אותה נטמיע (עדיף תמונת gif או png עם רקע שקוף)
  • שרת שתומך ב PHP עם ספרית GD מותקנת
  • שרת שתומך בקבצי .htaccess ועליו מותקן mod_rewrite
  • ידע יחסית בסיסי בPHP
אז מה הרעיון?
נשתמש במודול של השרת שעושה redirect אוטומטי לקבצים. נשתמש בו כך שכל קובץ תמונתי שיבוקש ע"י משתמש כלשהו יופנה לסקריפט PHP אשר יטמיע בתוכו את הסימן-מים.

1) ניצור תיקיה (/images) בה נאחסן את כל התמונות שאנו רוצים שהסקריפט יפעל עליהם.

2) ניצור (או נשנה) את הקובץ .htaccess שנמצא בתיקיה מעל התיקיה שיצרנו:
קוד:
RewriteEngine on RewriteRule ^images/(.*)$ getImage.php?file=$1

הסבר:
כל בקשה לקובץ שנמצא תחת images יופנה לסקריפט בשם getImage.php כאשר נוסיף לו כפרמטר את שם הקובץ.

3) נכתוב את getImage.php:
קוד:
<?php // getImage.php if (!isset($_GET) || !isset($_GET['file'])) die; $filename = 'images/' . mysql_escape_string($_GET['file']); if (!file_exists($filename)) die; $img = imagecreatefromjpeg($filename); $imgWidth = imagesx($img); $imgHeight = imagesy($img); $wm = imagecreatefromgif('wm.gif'); $wmWidth = imagesx($wm); $wmHeight = imagesy($wm); imagecopymerge($img, $wm, 0, $imgHeight - $wmHeight, 0, 0, $wmWidth, $wmHeight, 30); header("Content-Type: image/jpeg"); imagejpeg($img); imagedestroy($wm); imagedestroy($img); ?>

הסקריפט בודק שהקובץ אכן קיים ומנסה לפתוח אותו. כמו כן הוא משתמש בקובץ wm.gif כסימן מים. הפונקציה imagecopymerge ממזגת בין שתי תמונות כאשר הפרמטר האחרון הוא ה opacity (אם נשים 0 אז הסימן מים לא יראה בכלל, אם נשים 100, אז הסימן מים לא יהיה שקוף בכלל).

הערה: הקוד הזה עובד רק על תמונות jpg והוא שם את הסימן בתחתית התמונה. עם קצת הבנה בסיסית אפשר לשנות את הקוד איך שנראה (בדיקת extension, שינוי המיקום, נתינת תמונת ERROR, וכו').

4) נעלה את 3 הקבצים לשרת (wm.gif, .htaccess, getImage.php) ונקווה לטוב.


אשמח להערות והארות. מקווה שעזרתי למישהו
_____________________________________
!!אזהרה!!
ההודעה עלולה להכיל שברי אגוזים ו/או איברי דגים כלשהם
!!אזהרה!!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 14:06

הדף נוצר ב 0.04 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר