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

הוסטס - פורום אחסון האתרים הגדול בישראל (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=21513)

Eli-Hai 09-05-06 22:04

העברת הפלט של GD לאמצע התמונה.
 
אהלן, אני מנסה להעביר את מיקום הטקסט שלי לאמצע התמונה, כלומר, שהטקסט "יתיישר" לאמצע באופן אוטומטי.
אני לא רוצה אותה באמצע בדיוק, אני רוצה שהשורה הרנדומלית שמופיעה פה תהיה באמצע (אותה השורה).

אפשרי? אם כן, איך?
תודה מראש.

miniature 09-05-06 22:25

אפשר לקבוע בפונקציה imagestring() את המיקום המדוייק.

Eli-Hai 10-05-06 10:15

יש לך טעות, אני רוצה שהפלט יתיישר אוטומטית בהתאם לרוחב של הGD.
וimagestring לא קובע את זה, ז"א הוא נשאר קבוע לכל הפלט, אני רוצה שהוא יתאים עצמו.

BlueNosE 10-05-06 10:20

מה הבעיה, תעשה את הרוחב של הGD, לחלק ל2, פחות הרוחב של הטקסט לחלק ל2..
כלומר, נניח שכל התמונה היא 100 והטקסט הוא 50, אז הx יהיה - 100/2 = 50
50/2 = 25
50-25 = 25, המיקום המדוייק של הטקסט באמצע.
רק צריך למדוד את הטקסט עצמו.

Eli-Hai 12-05-06 16:12

ואיך בדיוק אפשרי למדוד את הטקסט עצמו?

BlueNosE 12-05-06 17:07

אם הטקסט קבוע, אתה יכול להגדיר מראש.

Eli-Hai 12-05-06 17:35

כמו שאמרתי, הטקסט הוא רנדומלי. איך אני מודד את מספר התווים של משתנה מסויים?

miniature 12-05-06 17:37

ציטוט:

נכתב במקור על ידי c00kie
כמו שאמרתי, הטקסט הוא רנדומלי. איך אני מודד את מספר התווים של משתנה מסויים?

strlen() ...

Eli-Hai 12-05-06 20:25

טוב אוקיי, אני פשוט לא הבנתי עדיין, איך אני מיישר את זה, המשתנה של הטקסט שלי הוא $random_sentences, אני אשמח אם מישהו יעזור לי.

RS324 12-05-06 21:10

ציטוט:

נכתב במקור על ידי BlueNosE
מה הבעיה, תעשה את הרוחב של הGD, לחלק ל2, פחות הרוחב של הטקסט לחלק ל2..
כלומר, נניח שכל התמונה היא 100 והטקסט הוא 50, אז הx יהיה - 100/2 = 50
50/2 = 25
50-25 = 25, המיקום המדוייק של הטקסט באמצע.
רק צריך למדוד את הטקסט עצמו.


אחרי זה תעשה

$strlen = strlen($str);
$gobackchars = ceil($strlen/2);

ואז 25 - GOBACKCHARS

לדוגמא האורך של המחרוזת הוא 8 תווים
אז לאחר החילוק יוצא לך 4
ואז הוא מתחיל את הטקסט ב 21 ויסיים אותו ב 29

כאשר 25 הוא האמצע גם של הכתב...

MasterNir 12-05-06 21:55

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

RS324 12-05-06 22:35

ציטוט:

נכתב במקור על ידי MasterNir
אתה יוצא מנקודת הנחה שכל תו שווה לפיקסל אחד?...
צריך למדוד את הרוחב/אורך של כל תו ולחשב לפיו את אורך המחרוזת, רק לאחר מכן לחלק לשתיים.


אם אני לא טועה כל תו באמת שווה לפיקסל אחד בתוך השדה של ה POST
כי זה ללא שינויים של עיצוב וכאלה..כמעט בטוח..שווה לנסות...

MasterNir 12-05-06 22:41

אנחנו מדברים על GD, זה תלוי בפונט שהוא משתמש בו ובגודל שהוא בוחר...
אבל אני אבדוק ואערוך...

עריכה:
כמו שאמרתי, צריך לבדוק את אורך/רוחב הפונט... ניתן לעשות זאת עם הפונקציה imagefontheight () ו-imagefontwidth ().
כמובן שיש להעביר את אותו פונט כמו הפונט בכתיבת הטקסט על התמונה.


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

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