Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 22:54

  • Please register to post and access all features, it's quick, easy and FREE!

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.

Reply
 
Old   #1



 
xShizoidx's Avatar
 
elite*gold: 0
The Black Market: 279/0/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
xShizoidx is offline  
Old 01/14/2017, 01:11   #2


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,118
Received Thanks: 2,435
Quote:
Originally Posted by xShizoidx View Post
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);
False is offline  
Old 01/14/2017, 02:27   #3



 
xShizoidx's Avatar
 
elite*gold: 0
The Black Market: 279/0/0
Join Date: Feb 2011
Posts: 1,342
Received Thanks: 410
Quote:
Originally Posted by .ƒaℓsє. View Post
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.
xShizoidx is offline  
Old 01/14/2017, 03:10   #4


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,118
Received Thanks: 2,435
Quote:
Originally Posted by xShizoidx View Post
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($image155155155);
imagefill($image00$bgColor);

$textColor imagecolorallocate($image255021);
$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
False is offline  
Old 01/14/2017, 16:40   #5



 
xShizoidx's Avatar
 
elite*gold: 0
The Black Market: 279/0/0
Join Date: Feb 2011
Posts: 1,342
Received Thanks: 410
Quote:
Originally Posted by .ƒaℓsє. View Post
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($image155155155);
imagefill($image00$bgColor);

$textColor imagecolorallocate($image255021);
$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);
?>
xShizoidx is offline  
Old 01/14/2017, 18:07   #6


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,118
Received Thanks: 2,435
Quote:
Originally Posted by xShizoidx View Post
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.
False is offline  
Old 01/16/2017, 15:44   #7



 
xShizoidx's Avatar
 
elite*gold: 0
The Black Market: 279/0/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
xShizoidx is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.