|
You last visited: Today at 22:54
Advertisement
Textgröße dem Bild anpassen und zentrieren
Discussion on Textgröße dem Bild anpassen und zentrieren within the Web Development forum part of the Coders Den category.
01/14/2017, 00:37
|
#1
|
elite*gold: 0
Join Date: Feb 2011
Posts: 1,342
Received Thanks: 410
|
Textgröße dem Bild anpassen und zentrieren
Guten Abend,
bei meinem Skript möchte ich den Text horizontal und vertikal zentriert zum Bild haben (egal welche Breiten und Höhenangaben beim Bild angegeben wurden ) und das der Text insgesamt halb so breit ist wie das Bild. Das Problem ist, dass das ganze in PHP sein muss und ich deshalb nicht weiterkomme.
Mein bisherigen Ansatz sieht folgendermaßen aus :
Code:
<?php
$imageWidth = 300;
$imageHeight = 500;
$image = imagecreate(300, 500);
$bgColor = imagecolorallocate($image, 155, 155, 155);
imagefill($image, 0, 0, $bgColor);
$textColor = imagecolorallocate($image, 0, 0, 0);
$font = "arial.ttf"; // ARIAL SCHRIFTART
imagettftext($image, 20, 0, 50, 50, $textColor, $font, "normal");
header("Content-Type: image/jpeg");
imagejpeg($image);
imagedestroy($image);
?>
Weiß jemand, wie man das eventuell machen kann?
Mit freundlichen Grüßen,
xShizoidx
|
|
|
01/14/2017, 01:11
|
#2
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,118
Received Thanks: 2,435
|
Quote:
Originally Posted by xShizoidx
Guten Abend,
bei meinem Skript möchte ich den Text horizontal und vertikal zentriert zum Bild haben (egal welche Breiten und Höhenangaben beim Bild angegeben wurden ) und das der Text insgesamt halb so breit ist wie das Bild. Das Problem ist, dass das ganze in PHP sein muss und ich deshalb nicht weiterkomme.
Mein bisherigen Ansatz sieht folgendermaßen aus :
Code:
<?php
$imageWidth = 300;
$imageHeight = 500;
$image = imagecreate(300, 500);
$bgColor = imagecolorallocate($image, 155, 155, 155);
imagefill($image, 0, 0, $bgColor);
$textColor = imagecolorallocate($image, 0, 0, 0);
$font = "arial.ttf"; // ARIAL SCHRIFTART
imagettftext($image, 20, 0, 50, 50, $textColor, $font, "normal");
header("Content-Type: image/jpeg");
imagejpeg($image);
imagedestroy($image);
?>
Weiß jemand, wie man das eventuell machen kann?
Mit freundlichen Grüßen,
xShizoidx
|
Sowas?
Code:
<?php
const BOUNDING_UPPER_LEFT = 7;
const BOUNDING_UPPER_RIGHT = 1;
const BOUNDING_LOWER_LEFT = 0;
const BOUNDING_LOWER_RIGHT = 2;
$imageWidth = 500;
$imageHeight = 1000;
$image = imagecreate($imageWidth, $imageHeight);
$bgColor = imagecolorallocate($image, 155, 155, 155);
imagefill($image, 0, 0, $bgColor);
$textColor = imagecolorallocate($image, 255, 0, 21);
$font = "./arial.ttf";
$fontSize = 50;
$angel = 0;
$text = "Text";
$textBounding = imagettfbbox($fontSize, $angel, $font, $text);
$textWidth = $textBounding[BOUNDING_LOWER_RIGHT] - $textBounding[BOUNDING_LOWER_LEFT];
$textHeight = $textBounding[BOUNDING_UPPER_LEFT] - $textBounding[BOUNDING_UPPER_RIGHT];
$textPositionX = ($imageWidth/2) - ($textWidth/2);
$textPositionY = ($imageHeight/2) - ($textHeight/2);
imagettftext($image, $fontSize, $angel, $textPositionX, $textPositionY, $textColor, $font, $text);
header("Content-Type: image/jpeg");
imagejpeg($image);
imagedestroy($image);
|
|
|
01/14/2017, 02:27
|
#3
|
elite*gold: 0
Join Date: Feb 2011
Posts: 1,342
Received Thanks: 410
|
Quote:
Originally Posted by .ƒaℓsє.
Sowas?
Code:
<?php
const BOUNDING_UPPER_LEFT = 7;
const BOUNDING_UPPER_RIGHT = 1;
const BOUNDING_LOWER_LEFT = 0;
const BOUNDING_LOWER_RIGHT = 2;
$imageWidth = 500;
$imageHeight = 1000;
$image = imagecreate($imageWidth, $imageHeight);
$bgColor = imagecolorallocate($image, 155, 155, 155);
imagefill($image, 0, 0, $bgColor);
$textColor = imagecolorallocate($image, 255, 0, 21);
$font = "./arial.ttf";
$fontSize = 50;
$angel = 0;
$text = "Text";
$textBounding = imagettfbbox($fontSize, $angel, $font, $text);
$textWidth = $textBounding[BOUNDING_LOWER_RIGHT] - $textBounding[BOUNDING_LOWER_LEFT];
$textHeight = $textBounding[BOUNDING_UPPER_LEFT] - $textBounding[BOUNDING_UPPER_RIGHT];
$textPositionX = ($imageWidth/2) - ($textWidth/2);
$textPositionY = ($imageHeight/2) - ($textHeight/2);
imagettftext($image, $fontSize, $angel, $textPositionX, $textPositionY, $textColor, $font, $text);
header("Content-Type: image/jpeg");
imagejpeg($image);
imagedestroy($image);
|
Danke für die schnelle Antwort.
Mit der Positionierung ist das perfekt. Allerdings habe ich nun noch das Problem, dass sich die Schriftgröße nicht der Breite und der Höhe anpasst.
Wenn ich es beispielsweise auf 5000 x 5000 abänder, sehe ich den Text kaum noch und wenn ich es zu klein mache, dann ist der Text zu groß. Am Besten wäre es , wenn die Schrift von der Breite 50% gegenüber dem Bildgröße ist.
|
|
|
01/14/2017, 03:10
|
#4
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,118
Received Thanks: 2,435
|
Quote:
Originally Posted by xShizoidx
Danke für die schnelle Antwort.
Mit der Positionierung ist das perfekt. Allerdings habe ich nun noch das Problem, dass sich die Schriftgröße nicht der Breite und der Höhe anpasst.
Wenn ich es beispielsweise auf 5000 x 5000 abänder, sehe ich den Text kaum noch und wenn ich es zu klein mache, dann ist der Text zu groß. Am Besten wäre es , wenn die Schrift von der Breite 50% gegenüber dem Bildgröße ist.
|
so?
PHP Code:
<?php const BOUNDING_UPPER_LEFT = 7; const BOUNDING_UPPER_RIGHT = 1; const BOUNDING_LOWER_LEFT = 0; const BOUNDING_LOWER_RIGHT = 2;
$imageWidth = 5000; $imageHeight = 5000;
$image = imagecreate($imageWidth, $imageHeight); $bgColor = imagecolorallocate($image, 155, 155, 155); imagefill($image, 0, 0, $bgColor);
$textColor = imagecolorallocate($image, 255, 0, 21); $font = "./arial.ttf"; $fontSize = $imageWidth / 10 *2; $angel = 0; $text = "Text"; $textBounding = imagettfbbox($fontSize, $angel, $font, $text); $textWidth = $textBounding[BOUNDING_LOWER_RIGHT] - $textBounding[BOUNDING_LOWER_LEFT]; $textHeight = $textBounding[BOUNDING_UPPER_LEFT] - $textBounding[BOUNDING_UPPER_RIGHT]; $textPositionX = ($imageWidth/2) - ($textWidth/2); $textPositionY = ($imageHeight/2) - ($textHeight/2); imagettftext($image, $fontSize, $angel, $textPositionX, $textPositionY, $textColor, $font, $text);
header("Content-Type: image/jpeg"); imagejpeg($image); imagedestroy($image);
Änderung :
PHP Code:
$fontSize = $imageWidth / 10 *2;
|
|
|
01/14/2017, 16:40
|
#5
|
elite*gold: 0
Join Date: Feb 2011
Posts: 1,342
Received Thanks: 410
|
Quote:
Originally Posted by .ƒaℓsє.
so?
PHP Code:
<?php const BOUNDING_UPPER_LEFT = 7; const BOUNDING_UPPER_RIGHT = 1; const BOUNDING_LOWER_LEFT = 0; const BOUNDING_LOWER_RIGHT = 2; $imageWidth = 5000; $imageHeight = 5000; $image = imagecreate($imageWidth, $imageHeight); $bgColor = imagecolorallocate($image, 155, 155, 155); imagefill($image, 0, 0, $bgColor); $textColor = imagecolorallocate($image, 255, 0, 21); $font = "./arial.ttf"; $fontSize = $imageWidth / 10 *2; $angel = 0; $text = "Text"; $textBounding = imagettfbbox($fontSize, $angel, $font, $text); $textWidth = $textBounding[BOUNDING_LOWER_RIGHT] - $textBounding[BOUNDING_LOWER_LEFT]; $textHeight = $textBounding[BOUNDING_UPPER_LEFT] - $textBounding[BOUNDING_UPPER_RIGHT]; $textPositionX = ($imageWidth/2) - ($textWidth/2); $textPositionY = ($imageHeight/2) - ($textHeight/2); imagettftext($image, $fontSize, $angel, $textPositionX, $textPositionY, $textColor, $font, $text); header("Content-Type: image/jpeg"); imagejpeg($image); imagedestroy($image);
Änderung :
PHP Code:
$fontSize = $imageWidth / 10 *2;
|
Sehr gut, danke dir, habe noch die 10 in 20 abgeändert und nun passt es wunderbar. Mir ist gerade aufgefallen ,dass die Textqualität bei kleinen Bildern sehr schlecht ist, gibt es da eventuell ein Trick? (es soll weiterhin .jpg sein)
Des Weiteren habe ich noch die Frage, ob man einfach die Windows Schriftarten bei sich auf den Server hochladen darf und verwenden kann oder ob man da lizensrechtliche Probleme bekommt?
Code:
<?php
const BOUNDING_UPPER_LEFT = 7;
const BOUNDING_UPPER_RIGHT = 1;
const BOUNDING_LOWER_LEFT = 0;
const BOUNDING_LOWER_RIGHT = 2;
$imageWidth = 333;
$imageHeight = 333;
$image = imagecreate($imageWidth, $imageHeight);
$bgColor = imagecolorallocate($image, 155, 155, 155);
imagefill($image, 0, 0, $bgColor);
$textColor = imagecolorallocate($image, 255, 0, 21);
$font = "./arial.ttf";
$fontSize = $imageWidth / 20 * 2;
$angel = 0;
$text = "placeholder";
$textBounding = imagettfbbox($fontSize, $angel, $font, $text);
$textWidth = $textBounding[BOUNDING_LOWER_RIGHT] - $textBounding[BOUNDING_LOWER_LEFT];
$textHeight = $textBounding[BOUNDING_UPPER_LEFT] - $textBounding[BOUNDING_UPPER_RIGHT];
$textPositionX = ($imageWidth/2) - ($textWidth/2);
$textPositionY = ($imageHeight/2) - ($textHeight/2);
imagettftext($image, $fontSize, $angel, $textPositionX, $textPositionY, $textColor, $font, $text);
header("Content-Type: image/jpeg");
imagejpeg($image);
imagedestroy($image);
?>
|
|
|
01/14/2017, 18:07
|
#6
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,118
Received Thanks: 2,435
|
Quote:
Originally Posted by xShizoidx
Sehr gut, danke dir, habe noch die 10 in 20 abgeändert und nun passt es wunderbar. Mir ist gerade aufgefallen ,dass die Textqualität bei kleinen Bildern sehr schlecht ist, gibt es da eventuell ein Trick? (es soll weiterhin .jpg sein)
Des Weiteren habe ich noch die Frage, ob man einfach die Windows Schriftarten bei sich auf den Server hochladen darf und verwenden kann oder ob man da lizensrechtliche Probleme bekommt?
Code:
<?php
const BOUNDING_UPPER_LEFT = 7;
const BOUNDING_UPPER_RIGHT = 1;
const BOUNDING_LOWER_LEFT = 0;
const BOUNDING_LOWER_RIGHT = 2;
$imageWidth = 333;
$imageHeight = 333;
$image = imagecreate($imageWidth, $imageHeight);
$bgColor = imagecolorallocate($image, 155, 155, 155);
imagefill($image, 0, 0, $bgColor);
$textColor = imagecolorallocate($image, 255, 0, 21);
$font = "./arial.ttf";
$fontSize = $imageWidth / 20 * 2;
$angel = 0;
$text = "placeholder";
$textBounding = imagettfbbox($fontSize, $angel, $font, $text);
$textWidth = $textBounding[BOUNDING_LOWER_RIGHT] - $textBounding[BOUNDING_LOWER_LEFT];
$textHeight = $textBounding[BOUNDING_UPPER_LEFT] - $textBounding[BOUNDING_UPPER_RIGHT];
$textPositionX = ($imageWidth/2) - ($textWidth/2);
$textPositionY = ($imageHeight/2) - ($textHeight/2);
imagettftext($image, $fontSize, $angel, $textPositionX, $textPositionY, $textColor, $font, $text);
header("Content-Type: image/jpeg");
imagejpeg($image);
imagedestroy($image);
?>
|
Wegen der Lizenz musst du dich selber informieren.
Wegen der Qualität habe ich so auf die schnelle nichts gefunden.
|
|
|
01/16/2017, 15:44
|
#7
|
elite*gold: 0
Join Date: Feb 2011
Posts: 1,342
Received Thanks: 410
|
bei einem png habe ich das Problem nun gott sei dank nicht mehr, Problem gelöst
|
|
|
|
Similar Threads
|
[DIV] Frage zum Zentrieren
05/20/2016 - Web Development - 4 Replies
Hallo Community wie auf dem Bild zu sehen habe ich in einen DIV
mehrere kleine DIV's diese sollen aber Zentriert in die Mitte nebeneinander.
margin:0 auto; habe ich schon versuch genau so wie den großen DIV anders
festzulegen. Kann mir jemand eine Lösung nennen ?
Über jede Hilfe bin ich sehr dankbar ;)
Mit freundlichen Grüßen
|
Css frage bzg zentrieren
06/06/2015 - Web Development - 12 Replies
Hey zusammen,
vorab die Seite : Website .....
Also wie man oben in der mitte sieht steht dort "Du bist momentan nicht eingeloggt, einloggen!".
Mein Problem ist nun, wie bekomme ich das mittig?
Aber nicht nur für meine auflösung(bzw Browsergröße) sondern für jede?
danke schonmal vorab
|
Hilfe bei einem Bild (Schriftzug an hintergrund anpassen)
08/26/2014 - General Art - 2 Replies
Hey Leute,
ich bräuchte einfach mal die hilfe, dass nämlich folgende Schrift einen Transparenten Hintergrund hat, damit der Schriftzug auf dem Bild ist.
http://s1.directupload.net/images/140826/6mcu3c6k .png
http://s1.directupload.net/images/140826/zugvvumh .png
|
Zentrieren
03/12/2012 - Web Development - 3 Replies
.header_main{
background-image: url(img/header_Main.png);
background-repeat: no-repeat;
background-position: left top;
padding-top:100%;
margin-bottom:100%;
}
wie kann ich den Header jetzt zentrieren
|
PhP -> zentrieren o.O
08/10/2010 - Main - 3 Replies
Moin,
Was ist der befehl bzw. was muss ich schreiben das die zeile oder ein buchstabe
Zentriert wird
Bitte um hilfe ;)
mfg !
|
All times are GMT +2. The time now is 22:54.
|
|