Hej jeg er igang med et større projekt kaldet "Rush" indtil videre. Det er et kortspil, som man skal kunne printe og spille, men nok om det.
Mit egentlige problem er fordi, jeg har arbejdet på en kort generator, som ud fra et template billede, prober tekst ind i billedet. Det fungere fint nok, men jeg har nogle enkelte steder hvor jeg gerne vil have den til automatisk at skifte linje, når teksten overskrider en bestemt bredde (pixels).
Dette er koden jeg bruger, og indtil videre bruger jeg et wrap system som skifter linje efter antal tegn, men det virker ikke altid lige godt.
<?php
// Indictaes that the php file is a picture
header("Content-type: image/png");
// The info of the card
$navn = $_POST['name'];
$atk = $_POST['atk'];
$def = $_POST['def'];
$lvl = $_POST['lvl'];
$type = $_POST['type'];
$web = "Rush PCG www.munkbusiness.dk/rush";
$artist = $_POST['artist'];
$serial = $_POST['serial'];
include("break.php");
$text_field = $_POST['effect'];
$flavor_text = $_POST['flavor_text'];
//word wrap
$warptext = wordwrap($text_field, 56, "\n");
$warptext_flavor = wordwrap($flavor_text, 56, "\n");
if (empty($_POST['picture'])) {
$_POST['picture']='test_illustration';
}
// The template we put the info into
$im = imagecreatefrompng("template.png");
$art = imagecreatefrompng($_POST['picture'] . ".png");
// Text color
$orange = imagecolorallocate($im, 0, 0, 0);
$light_grey = imagecolorallocate($im, 140, 140, 140);
// Text font
$font = "biondi.ttf";
$font2 = "biondi light.ttf";
$font_times = "times.ttf";
$font_times_i = "timesi.ttf";
// All the info is printed on the image
ImageTTFText ($im, 14, 0, 20, 37, $orange, $font, $navn);
ImageTTFText ($im, 12, 0, 312, 425, $orange, $font, $atk);
ImageTTFText ($im, 12, 0, 312, 448, $orange, $font, $def);
ImageTTFText ($im, 12, 0, 312, 470, $orange, $font, $lvl);
ImageTTFText ($im, 11, 0, 20, 54, $orange, $font2, $type);
ImageTTFText ($im, 9, 0, 20, 488, $orange, $font, $web);
ImageTTFText ($im, 10, 0, 20, 326, $light_grey, $font_times, "Illustrator: " . $artist);
ImageTTFText ($im, 10, 0, 292, 326, $light_grey, $font_times, $serial);
ImageTTFText($im, 10, 0, 20, 348, $orange, $font_times, $warptext);
ImageTTFText($im, 10, 0, 20, 454, $orange, $font_times_i, $warptext_flavor);
// Tallene i parentesen herover betyder:
// Første tal efter im = fontstørrelse i px
// 2. tal efter im = rotation i grader
// 3. tal efter im = afstand i px fra venstre billedkant til tekst
// 4. tal efter im = afstand i px fra billedtop til tekstlinje
imagecopy($im, $art, 17, 64, 0, 0, 316, 245);
imagepng($im);
imagedestroy($im);
imagedestroy($art);
?>
Tak for hjælpen på forhånd
ps. jeg ved altså ikke helt hvad det der point system her på forummet går ud på så jeg har altså taget uden point.