Hallo.
Ich habe folgende Frage.
Mit einem PHP-Skript werden Grafiken erstellt. In einem Verzeichniss sind mehrere hundert Grafiken. Je nach Eingabe ins Formular, werden die Grafiken wie ein Puzzle zu einer großen Grafik zusammen gebaut.
Das alles klappt auch wunderbar.
Das Problem ist das ich mit der Breite der End-Grafik nicht zufrieden bin. Ich würde gerne eine Maximal Breite eingeben, wenn die End-Grafik nicht Breit genug ist, sollen an zwei bestimmten Stellen Reserve-Grafiken eingefügt werden (1xReserve-Grafik = 1px Breit).
Ich kriege das aber leider nicht hin. Ich habe es mit "Wenn und Dann" Code versucht (ähnlich wie bei Excel) aber damit kriege ich es auch nicht hin.
Hier das PHP Skript in gekürzter Form (unnötiges gelöscht):
Um das ganze mal verständlicher zu erklären:
Derzeit ist es so:
X = Grafik (5px Breit)
O = Grafik (10px Breit)
XOOXXXXXXOXOOXX (100px)
Aber ich möchte das es 132px sind.
also:
X = Grafik (5px Breit)
O = Grafik (10px Breit)
| = Reserve Grafik (1px Breit)
XOO||||||||||||||||XXXXXXOXOO||||||||||||||||XX (132px)
Hätte jemand eine Idee wie ich das umsetzen kann?
Vielen Dank.
Ich habe folgende Frage.
Mit einem PHP-Skript werden Grafiken erstellt. In einem Verzeichniss sind mehrere hundert Grafiken. Je nach Eingabe ins Formular, werden die Grafiken wie ein Puzzle zu einer großen Grafik zusammen gebaut.
Das alles klappt auch wunderbar.
Das Problem ist das ich mit der Breite der End-Grafik nicht zufrieden bin. Ich würde gerne eine Maximal Breite eingeben, wenn die End-Grafik nicht Breit genug ist, sollen an zwei bestimmten Stellen Reserve-Grafiken eingefügt werden (1xReserve-Grafik = 1px Breit).
Ich kriege das aber leider nicht hin. Ich habe es mit "Wenn und Dann" Code versucht (ähnlich wie bei Excel) aber damit kriege ich es auch nicht hin.
Hier das PHP Skript in gekürzter Form (unnötiges gelöscht):
PHP:
<?php
// ######################################################################
// Input 1
// ######################################################################
if (!isset($_POST['ABC1'])) {
$_POST['ABC1'] = '';
}
// ######################################################################
// Input 2
// ######################################################################
if (!isset($_POST['ABC2'])) {
$_POST['ABC2'] = '';
}
// ######################################################################
// Input 3
// ######################################################################
if (!isset($_POST['ABC3'])) {
$_POST['ABC3'] = '';
}
// ######################################################################
// Input 4
// ######################################################################
if (!isset($_POST['ABC4'])) {
$_POST['ABC4'] = '';
}
// ######################################################################
// Input 5
// ######################################################################
if (!isset($_POST['ABC5'])) {
$_POST['ABC5'] = '';
}
// ######################################################################
// Zusammenfassen
// ######################################################################
$Input1 = strtoupper($_POST['ABC1']);
$Input2 = strtoupper($_POST['ABC2']);
$Input3 = strtoupper($_POST['ABC3']);
$Input4 = strtoupper($_POST['ABC4']).strtoupper($_POST['ABC5']);
// ######################################################################
// Output usw.
// ######################################################################
$Input = 'Grafik'.$Input4.'_'.$Input1.'_'.$Input2.'_'.$Input3;
$Umlaute1 = array("Ä", "Ö", "Ü");
$Umlaute2 = array("AE", "OE", "UE");
$Output = str_replace($Umlaute1, $Umlaute2, $Input);
$Output = htmlspecialchars($Output);
// ######################################################################
// Ordner, Dateiformaten, Präfix und Bildbreite
// ######################################################################
$Ordner1 ='images/KG/';
$Ordner2 ='KG/';
$PFGF ='.png';
$total_size_x =0;
// ######################################################################
// Standard-Grafiken
// ######################################################################
$Standard_Grafik1 = $Ordner1.'Grafik1000'.$PFGF;
$Standard_Grafik2 = $Ordner1.'Grafik2000'.$PFGF;
$Standard_Grafik3 = $Ordner1.'Grafik3000'.$PFGF;
// ######################################################################
// Standard-Grafik
// ######################################################################
for($j=1; $j < 2; ++$j){
if(file_exists($Standard_Grafik1)){
$size = getimagesize($Standard_Grafik1);
$im[] = array('img' => imagecreatefrompng($Standard_Grafik1),
'sizex' => $size[0],
);
$total_size_x +=$size[0];
}
}
// ######################################################################
// Input1 Grafiken
// ######################################################################
for($j=0, $x = strlen($Input1); $j < $x; ++$j){
if(file_exists($Ordner1.$Input1[$j].$PFGF)){
$size = getimagesize($Ordner1.$Input1[$j].$PFGF);
$im[] = array('img' => imagecreatefrompng($Ordner1.$Input1[$j].$PFGF),
'sizex' => $size[0],
);
$total_size_x +=$size[0];
}
}
// ######################################################################
// Input-4 Grafiken
// ######################################################################
for($j=1; $j < 2; ++$j){
if(file_exists($Ordner1.$Input4.$PFGF)){
$size = getimagesize($Ordner1.$Input4.$PFGF);
$im[] = array('img' => imagecreatefrompng($Ordner1.$Input4.$PFGF),
'sizex' => $size[0],
);
$total_size_x +=$size[0];
}
}
// ######################################################################
// Input2 Grafiken
// ######################################################################
for($j=0, $x = strlen($Input2); $j < $x; ++$j){
if(file_exists($Ordner1.$Input2[$j].$PFGF)){
$size = getimagesize($Ordner1.$Input2[$j].$PFGF);
$im[] = array('img' => imagecreatefrompng($Ordner1.$Input2[$j].$PFGF),
'sizex' => $size[0],
);
$total_size_x +=$size[0];
}
}
// ######################################################################
// Standard-Grafik
// ######################################################################
for($j=1; $j < 2; ++$j){
if(file_exists($Standard_Grafik2)){
$size = getimagesize($Standard_Grafik2);
$im[] = array('img' => imagecreatefrompng($Standard_Grafik2),
'sizex' => $size[0],
);
$total_size_x +=$size[0];
}
}
// ######################################################################
// Input3 Grafiken
// ######################################################################
for($j=0, $x = strlen($Input3); $j < $x; ++$j){
if(file_exists($Ordner1.$Input3[$j].$PFGF)){
$size = getimagesize($Ordner1.$Input3[$j].$PFGF);
$im[] = array('img' => imagecreatefrompng($Ordner1.$Input3[$j].$PFGF),
'sizex' => $size[0],
);
$total_size_x +=$size[0];
}
}
// ######################################################################
// Standard-Grafik
// ######################################################################
for($j=1; $j < 2; ++$j){
if(file_exists($Standard_Grafik3)){
$size = getimagesize($Standard_Grafik3);
$im[] = array('img' => imagecreatefrompng($Standard_Grafik3),
'sizex' => $size[0],
);
$total_size_x +=$size[0];
}
}
// ######################################################################
// Grafik erstellen und speichern
// ######################################################################
$imend = imagecreatetruecolor($total_size_x, $size[1]);
$ac_x = 0;
foreach($im as $grafik){
imagecopy($imend, $grafik['img'], $ac_x, 0, 0, 0, imagesx($grafik['img']), imagesy($grafik['img']));
$ac_x+= $grafik['sizex'];
}
imagepng($imend,"{$Ordner2}End-Grafik-{$Output}.png");
$URL1 = $Ordner2."End-Grafik-{$Output}.png";
$URL2 = $Output;
$size = getimagesize($URL1);
$kbyte = round(filesize($URL1)/1024, 3);
?>
Um das ganze mal verständlicher zu erklären:
Derzeit ist es so:
X = Grafik (5px Breit)
O = Grafik (10px Breit)
XOOXXXXXXOXOOXX (100px)
Aber ich möchte das es 132px sind.
also:
X = Grafik (5px Breit)
O = Grafik (10px Breit)
| = Reserve Grafik (1px Breit)
XOO||||||||||||||||XXXXXXOXOO||||||||||||||||XX (132px)
Hätte jemand eine Idee wie ich das umsetzen kann?
Vielen Dank.