הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   הקטנה בפרופורציה ב GD (https://hosts.co.il/forums/showthread.php?t=78091)

Skfir 04-09-09 10:17

הקטנה בפרופורציה ב GD
 
קוד:



function createthumb($name,$filename,$new_w,$new_h) {
 $system=explode('.',$name);
 if (preg_match('/jpg|jpeg/',$system[1]))
  $src_img=imagecreatefromjpeg($name);
 if (preg_match('/png/',$system[1]))
  $src_img=imagecreatefrompng($name);
 $old_x = imageSX($src_img);
 $old_y = imageSY($src_img);
 if ($old_x > $old_y) {
  $thumb_w=$new_w;
  $thumb_h=$new_h;
 }
 if ($old_x < $old_y) {
  $thumb_w=$old_x*($new_w/$old_y);
  $thumb_h=$new_h;
 }
 if ($old_x == $old_y) {
  $thumb_w=$new_w;
  $thumb_h=$new_h;
 }
 $dst_img=ImageCreateTrueColor($thumb_w,$thumb_h);
 imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y);
 $stamp = imagecreatefrompng('images/stamp.png');
 $marge_right = 0;
 $marge_bottom = 2;
 imagecopy($dst_img, $stamp, ((imagesx($dst_img)*$marge_right)/100), ((imagesy($dst_img)*$marge_bottom)/100), 0, 0, imageSX($stamp),imageSY($stamp));
 if (preg_match("/png/",$system[1]))
  imagepng($dst_img,$filename);
 else
  imagejpeg($dst_img,$filename);
 imagedestroy($dst_img);
 imagedestroy($src_img);
}

הכנתי את זה אוקי?
זה כאילו מקטין תתמונה עושה לה resize ואז מוסיף לתמונה חתימה כזאת של האתר ה stamp.png.
זה נראה ככה :
http://kfir91.ese.co.il/WebSiteCMS/a...eCMS_76440.jpg
עכשיו אם אני מקטין תתמונה עוד יותר, אז החתימה לא קוטנת לי בפרופורציה למה?

לדוגמא :
http://kfir91.ese.co.il/WebSiteCMS/a...eCMS_76440.jpg
איך אני עושה שהחתימה תקטן בפרופורציה שיראה טוב על התמונה כמו שצריך.
כעיקרון אני עשיתי שזה לא יקטן, אבל אני רוצה שהחתימה כן תקטן.. איך אני עושה את זה ..

המטרה שלי שזה יהיה משהו כזה :
http://images.one.co.il/images/d/dmain/nz/gg890492.jpg
http://images.one.co.il/images/d/dma...l/gg782970.gif

Elad-A 04-09-09 10:48

http://www.google.co.il/search?hl=iw...95%D7%A9&meta=

יש לך שם המון קודים מוכנים, תראה את העיקרון של קביעת רוחב \ גובה.
בגדול, אתה צריך שיהיה יחס שווה בינהם כדי שהתמונה לא תתעוות.

Shay Ben Moshe 04-09-09 10:52

בגדול זה נראה טוב.

כאן:
PHP קוד:

 if ($old_x $old_y) {
  
$thumb_w=$new_w;
  
$thumb_h=$new_h;
 } 

שכחת לבצע חישוב

מעבר לזה, בנושא הסמל שלך, מה שעשית זה לקחת סמל מתמונה והכנסת למשתנה. לקחת תמונה, הקטנת אותה והדבקת עליה את הסמל.

אתה יכול להדביק ואז להקטין, או ליצור לך שני סמלים שכל אחד ישמש לגודל שונה, ואז בכל זאת תיהיה אחידות מסויימת.

Skfir 04-09-09 11:10

ציטוט:

נכתב במקור על ידי The Chosen Generl (פרסם 737123)
בגדול זה נראה טוב.

כאן:
PHP קוד:

 if ($old_x $old_y) {
  
$thumb_w=$new_w;
  
$thumb_h=$new_h;
 } 

שכחת לבצע חישוב

מעבר לזה, בנושא הסמל שלך, מה שעשית זה לקחת סמל מתמונה והכנסת למשתנה. לקחת תמונה, הקטנת אותה והדבקת עליה את הסמל.

אתה יכול להדביק ואז להקטין, או ליצור לך שני סמלים שכל אחד ישמש לגודל שונה, ואז בכל זאת תיהיה אחידות מסויימת.

לא עשיתי חישוב כי זה לא ממש resize אני רוצה שזה יהיה בגודל אחיד.
ואם אני קודם מדביק ואחרי זה מקטין זה ממש מקטין לי תסמל לממש קטן. גם בתמונה היותר גדולה

Skfir 04-09-09 11:38

הנה תיקון קטן לתמונות למעלה
ניסיתי מה שאמרת שזה יקטין אחרי שהדבקתי וזה נראה ככה
http://kfir91.ese.co.il/WebSiteCMS/a...eCMS_35334.jpg
http://kfir91.ese.co.il/WebSiteCMS/a...eCMS_35334.jpg

אתה רואה, זה ממש קטן זה לא טוב, איך אני מגדיל את זה :\

זה הקוד
קוד:

function createthumb($name,$filename,$new_w,$new_h) {
        $system=explode('.',$name);
        if (preg_match('/jpg|jpeg/',$system[1]))
                $src_img=imagecreatefromjpeg($name);
        if (preg_match('/png/',$system[1]))
                $src_img=imagecreatefrompng($name);
        $stamp = imagecreatefrompng('images/stamp.png');
        $marge_right = 0;
        $marge_bottom = 2;
        imagecopy($src_img, $stamp, ((imagesx($src_img)*$marge_right)/100), ((imagesy($src_img)*$marge_bottom)/100), 0, 0, imageSX($stamp),imageSY($stamp));
        $old_x = imageSX($src_img);
        $old_y = imageSY($src_img);
        if ($old_x > $old_y) {
                $thumb_w=$new_w;
                $thumb_h=$new_h;
        }
        if ($old_x < $old_y) {
                $thumb_w=$old_x*($new_w/$old_y);
                $thumb_h=$new_h;
        }
        if ($old_x == $old_y) {
                $thumb_w=$new_w;
                $thumb_h=$new_h;
        }
        $dst_img=ImageCreateTrueColor($thumb_w,$thumb_h);
        imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y);
        if (preg_match("/png/",$system[1]))
                imagepng($dst_img,$filename);
        else
                imagejpeg($dst_img,$filename);
        imagedestroy($dst_img);
        imagedestroy($src_img);
}



כל הזמנים הם GMT +2. הזמן כעת הוא 06:08.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ