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

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

skaz 06-04-06 14:52

שמירה מוקטנת של תמונה ב php
 
היי,

אני יודע שיש אפשרות ב php לעלות תמונה לרשת ולשמור את התמונה הזו בתקייה מסוימת בגודל אחר (להקטין למשל), מישהו יכול בבקשה לתת לי קצת הסברים על כך?

תודה.

בניה 06-04-06 16:32

לש"ש


אפשר לעשות את זה עם GD.
http://il.php.net/manual/en/ref.image.php

miniature 06-04-06 16:38

בניה, אני חושב שהוא התכוון לקחת תמונה קיימת ולשנות את הגודל שלה..

null 06-04-06 16:44

ציטוט:

נכתב במקור על ידי miniature
בניה, אני חושב שהוא התכוון לקחת תמונה קיימת ולשנות את הגודל שלה..

ובניה אמר לו שעושים את זה בGD
והוא צודק, אז מה לתקן מישהו שצודק? |קורץ|

miniature 06-04-06 16:47

אבל איך אפשר לשנות את גודל התמונה?
יש שם רק פונקציות לשלוף את גודל התמונה (רוחב ואורך), אבל איך אפשר לשנות את זה?

null 06-04-06 16:50

לא ממש מבין בGD,
אני רק יודע שזה קיים, ושזה פועל,
אני יודע רק דברים בסיסיים בתחום ;P

בניה 06-04-06 17:09

לש"ש


נראה לי אפשר עם זה:
http://il.php.net/manual/en/function...opyresized.php
לא יצא לי לעבדו עם GD מזמן;P

skaz 07-04-06 13:32

מישהו יכול לקשר אותי למשהו מפורט יותר? כי חיפשת בלינק שנתתם ומצאתי שם איך להקטין תמונה אך לא מצאתי איך לשמור אותה בצורה מוקטנת על השרת...

Alon.R 07-04-06 14:27

ציטוט:

נכתב במקור על ידי skaz
מישהו יכול לקשר אותי למשהו מפורט יותר? כי חיפשת בלינק שנתתם ומצאתי שם איך להקטין תמונה אך לא מצאתי איך לשמור אותה בצורה מוקטנת על השרת...

פשוט מאוד:
אתה שם את הסקריפט הזה בתוך קובץ php:
[
PHP קוד:

 <?php
// File and new size
$filename 'test.jpg';
$percent 0.5;

// Content type
header('Content-type: image/jpeg');

// Get new sizes
list($width$height) = getimagesize($filename);
$newwidth $width $percent;
$newheight $height $percent;

// Load
$thumb imagecreatetruecolor($newwidth$newheight);
$source imagecreatefromjpeg($filename);

// Resize
imagecopyresized($thumb$source0000$newwidth$newheight$width$height);

// Output
imagejpeg($thumb);
?>

במשתנה $filename אתה שם את הנתיב של התמונה שאתה רוצה לשנות את גודלה.

במתשנה $percent, אני חושב שאתה צריך להכניס את האחוז.

וזהו, את השאר הסקריפט עושה, ובעצם הקובץ php הזה הוא התמונה.

נגיד קראת לקובץ php הזה image.php, אז תוכל לעשות קוד HTML ככה:
<img src="image.php">

ופה נגמר הסיפור, זה יציג את התמונה המוקטנת.

בהצלחה.

skaz 07-04-06 15:01

אוקיי הצלחתי :) עוד שאלה אחת:
הסקריפט פועל רק עם קבצי jpg, מה אני צריך להוסיף כדי שיקבל גם קבצי gif למשל? או שזה לא פועל?

בעצם לא הצלחתי, השאלה האחרונה שלי היא איך מוציאים מתיקיה מסוימת את הפרומט של קובץ תמונה מסויים, נגיד יש לי בתקייה קובץ 1.gif אז איך אני יכול לדעת את הסוג שלו (gif) דרך ה php?

miniature 07-04-06 15:02

לשנות את ה HEADER
ולשנות את ה imagejpeg ל imagegif

mlnn 07-04-06 15:03

ציטוט:

נכתב במקור על ידי skaz
אוקיי הצלחתי :) עוד שאלה אחת:
הסקריפט פועל רק עם קבצי jpg, מה אני צריך להוסיף כדי שיקבל גם קבצי gif למשל? או שזה לא פועל?

פורמט GIF הוא לא חופשי ולכן אי אפשר להפעיל את הסקריפט על קבצי GIF.

skaz 07-04-06 15:25

דווקא הצלחתי לעשות את זה על קבצי gif אבל רציתי לעשות תנאי שאם זה גיף אז הוא ילך לחלק של הגיף שהגדרתי ואם jpg אז jpg אבל בשביל זה אני צריך שה php ידע את סוג הקובץ, למשל אם
PHP קוד:

$filename 01.gif

שידע שסוג הקובץ הוא גיף כך שאם אני אעשה
PHP קוד:

if ( $filename == "image/gif"

הוא יכנס לתנאי. איך עושים את זה?

miniature 07-04-06 15:27

תחלק את שם הקובץ (strip) .

בניה 07-04-06 15:29

לש"ש


עריכה:
בקוד שהביאו לך יש את השורה הזו:
PHP קוד:

list($width$height) = getimagesize($filename); 

תחליף בזה:
PHP קוד:

list($width$height$type getimagesize($filename); 

והמשתנה $type יכיל את סוג התמונה

skaz 07-04-06 15:32

PHP קוד:

$filename $_GET['file'];
$dot '.';
$filestrpos($filename$dot); 

ככה?


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

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