Hallo,
ich habe ein kleinen Effektfilter für Bilder programmiert und möchte die daraus erzeugten Bilddateien per PHP (bzw. Redaxo Syntax wenn vorhanden) automatisch in den Medienpool einspeisen, damit das berechnete Bild dort zur Verfügung steht. Gibt es da irgendeine Möglichkeit?
Vielen Dank für Eure Hilfe !
Gruß,
Michael
Hallo,
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Re: Per PHP erstellte Bilder in Medienpool einspeisen
Hi,
verpack das ganze als Effekt für den Image Manager und du müsstest zu deinem gewünschten Ergebnis kommen wenn du die Bildytpen für den Mediepool mit dem Effekt ausstattest.
verpack das ganze als Effekt für den Image Manager und du müsstest zu deinem gewünschten Ergebnis kommen wenn du die Bildytpen für den Mediepool mit dem Effekt ausstattest.
Re: Per PHP erstellte Bilder in Medienpool einspeisen
Hallo RexDude,
danke für Deine Antwort! Ja, hatte auch schon gedacht, dass das der elegantere Weg ist. Leider weiß ich nicht, wie man das macht... Wäre dann so eine Art PlugIn, oder? Gibt es da irgendeine Anleitung?
Gruß,
Michael
danke für Deine Antwort! Ja, hatte auch schon gedacht, dass das der elegantere Weg ist. Leider weiß ich nicht, wie man das macht... Wäre dann so eine Art PlugIn, oder? Gibt es da irgendeine Anleitung?
Gruß,
Michael
Re: Per PHP erstellte Bilder in Medienpool einspeisen
Ich glaube es gibt hier keine Anleitung. Aber es sollte ganz einfach sein. Du musst lediglich deinen Effekt in eine Klasse packen (die von ex_effect_abstract abgeleitet ist) und in dem entsprechenden Effects Ordner ablegen, siehe hier: https://github.com/redaxo/redaxo4/tree/ ... es/effects
Re: Per PHP erstellte Bilder in Medienpool einspeisen
Aber wo lege ich z. B. fest, wie das Interface aussieht bzw. in welcher der Dateien leg ich die Eingabefelder für die Einstellungen an? Sorry, aber bin was das angeht absoluter Newbie ...
Re: Per PHP erstellte Bilder in Medienpool einspeisen
Bitte mal die vorhandenen Effect-Klassen anschauen und halt genauso machen
Re: Per PHP erstellte Bilder in Medienpool einspeisen
Einstellungen sollten diese hier sein: https://github.com/redaxo/redaxo4/blob/ ... #L168-L193
Re: Per PHP erstellte Bilder in Medienpool einspeisen
Guten Morgen,
mein Klassenscript sieht nun so aus - ich hab das teilweise adaptiert von der Insert-Image-Klasse.
Leider bekomme ich bei der Anwendung immer die Fehlermeldung
PHP Fatal error: Call to undefined function imagealphamask() in /Applications/MAMP/htdocs/redaxo4_5/redaxo/include/addons/image_manager/classes/effects/class.rex_effect_mask.inc.php on line 115
(in Zeile 115 wird eine der beiden Funktion aufgerufen: imagealphamask($gdimage, $gdmask);
Die betreffenden Funktionen sind aber in der Klasse enthalten. Muss ich die evtl. irgendwo anders deklarieren? Innerhalb der Klasse hatte ich die Funktionen schon an unterschiedlichen Stellen (z. B. unter der Funktion getParams(), innerhalb der Funktion execute() etc.)
Danke nochmal für die Hilfe!
Gruß,
Michael
mein Klassenscript sieht nun so aus - ich hab das teilweise adaptiert von der Insert-Image-Klasse.
Code: Alles auswählen
<?php
/*
Das Originalbild wird mit Kontrast und Helligkeit verstärkt,
mit der geladenen Maske freigestellt und auf das Originalbild
aufgerechnet (so der Plan ... ;-))
*/
class rex_effect_mask extends rex_effect_abstract {
/* --- Functions --- */
function imagealphamask( &$picture, $mask ) {
// Get sizes and set up new picture
$xSize = imagesx($picture);
$ySize = imagesy($picture);
$newPicture = imagecreatetruecolor($xSize, $ySize);
imagesavealpha($newPicture, true);
imagefill($newPicture, 0, 0, imagecolorallocatealpha( $newPicture, 0, 0, 0, 127));
// Resize mask if necessary
if ( $xSize != imagesx($mask) || $ySize != imagesy($mask) ) {
$tempPic = imagecreatetruecolor($xSize, $ySize);
imagecopyresampled($tempPic, $mask, 0, 0, 0, 0, $xSize, $ySize, imagesx($mask), imagesy($mask));
imagedestroy($mask);
$mask = $tempPic;
}
// Perform pixel-based alpha map application
for ($x = 0; $x < $xSize; $x++) {
for ($y = 0; $y < $ySize; $y++) {
$alpha = imagecolorsforindex($mask, imagecolorat( $mask, $x, $y));
$alpha = 127 - floor($alpha[ 'red' ] / 2);
$color = imagecolorsforindex($picture, imagecolorat($picture, $x, $y));
imagesetpixel($newPicture, $x, $y, imagecolorallocatealpha($newPicture, $color[ 'red' ], $color[ 'green' ], $color[ 'blue' ], $alpha));
}
}
// Copy back to original picture
imagedestroy($picture);
$picture = $newPicture;
}
function imagecopymerge_alpha($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct) {
// creating a cut resource
$cut = imagecreatetruecolor($src_w, $src_h);
// copying relevant section from background to the cut resource
imagecopy($cut, $dst_im, 0, 0, $dst_x, $dst_y, $src_w, $src_h);
// copying relevant section from watermark to the cut resource
imagecopy($cut, $src_im, 0, 0, $src_x, $src_y, $src_w, $src_h);
// insert cut resource to destination image
imagecopymerge($dst_im, $cut, $dst_x, $dst_y, 0, 0, $src_w, $src_h, $pct);
}
function execute () {
global $REX;
// Maske laden
$mask_file = $REX['MEDIAFOLDER'] .'/'. $this->params['maskimage'];
if (!file_exists($mask_file) || !is_file($mask_file)) {
$mask_file = dirname(__FILE__). '/../../media/brand.gif';
}
// Config
$mask = new rex_image($mask_file);
$mask->prepare();
$gdmask =& $mask->getImage();
$gdimage =& $this->image->getImage();
$image_width = $this->image->getWidth();
$image_height = $this->image->getHeight();
$mask_width = $mask->getWidth();
$mask_height = $mask->getHeight();
// Filter anwenden
imagefilter($gdimage, IMG_FILTER_BRIGHTNESS, -110);
imagefilter($gdimage, IMG_FILTER_CONTRAST, -30);
imagefilter($gdimage, IMG_FILTER_BRIGHTNESS, 70);
imagefilter($gdimage, IMG_FILTER_CONTRAST, -30);
// Maske anwenden
imagealphamask($gdimage, $gdmask);
// Mischen
imagecopymerge_alpha($gdimage,$gdmask, 0, 0, 0, 0, $image_width, $image_height, 100);
$mask->destroy();
}
function getParams() {
global $REX,$I18N;
return array(
array(
'label' => $I18N->msg('imanager_effect_mask_image'),
'name' => 'maskimage',
'type' => 'media',
'default' => ''
)
);
}
}
PHP Fatal error: Call to undefined function imagealphamask() in /Applications/MAMP/htdocs/redaxo4_5/redaxo/include/addons/image_manager/classes/effects/class.rex_effect_mask.inc.php on line 115
(in Zeile 115 wird eine der beiden Funktion aufgerufen: imagealphamask($gdimage, $gdmask);
Die betreffenden Funktionen sind aber in der Klasse enthalten. Muss ich die evtl. irgendwo anders deklarieren? Innerhalb der Klasse hatte ich die Funktionen schon an unterschiedlichen Stellen (z. B. unter der Funktion getParams(), innerhalb der Funktion execute() etc.)
Danke nochmal für die Hilfe!
Gruß,
Michael
Re: Per PHP erstellte Bilder in Medienpool einspeisen
Du solltest dich vielleicht ein bisschen mit Objektorentierter Programmierung beschäftigen.
Da du deine imagealphamask() nicht statisch deklariert hast, müsste theoretisch der Aufruf so sein: $this->imagealphamask($gdimage, $gdmask);
Der PHP Interpreter weiss sonst nicht wo es nach deiner Funktion suchen soll. Hausnummer fehlt
Da du deine imagealphamask() nicht statisch deklariert hast, müsste theoretisch der Aufruf so sein: $this->imagealphamask($gdimage, $gdmask);
Der PHP Interpreter weiss sonst nicht wo es nach deiner Funktion suchen soll. Hausnummer fehlt
Re: Per PHP erstellte Bilder in Medienpool einspeisen
Hallo RexDude,
ich muss schon wieder nerven...
Mein Klassenscript sieht jetzt so aus:
Das BIld kommt aber falsch raus:
Mit meinem ursprünglichen Script ...
... wird es angezeigt wie es sein soll:
Was habe ich denn da falsch gemacht? Das Script soll bewirken, dass das Originalbild mit folgender PNG-Maske maskiert werden soll und dann wieder auf das Original draufgerechnet werden soll.
Kannst Du mir da nochmal auf die Sprünge helfen? Danke !!!
Gruß,
Michael
ich muss schon wieder nerven...
Mein Klassenscript sieht jetzt so aus:
Code: Alles auswählen
<?php
/*
Das Originalbild wird mit Kontrast und Helligkeit verstärkt,
mit der geladenen Maske freigestellt und auf das Originalbild
aufgerechnet (so der Plan ... ;-))
*/
class rex_effect_mask extends rex_effect_abstract {
function execute () {
global $REX;
// Maske laden
$mask_file = $REX['MEDIAFOLDER'] .'/'. $this->params['maskimage'];
if (!file_exists($mask_file) || !is_file($mask_file)) {
$mask_file = dirname(__FILE__). '/../../media/brand.gif';
}
// Config
$mask = new rex_image($mask_file);
$mask->prepare();
$gdmask =& $mask->getImage();
$gdimage =& $this->image->getImage();
$original =& $this->image->getImage();
$image_width = $this->image->getWidth();
$image_height = $this->image->getHeight();
$mask_width = $mask->getWidth();
$mask_height = $mask->getHeight();
// Filter anwenden
imagefilter($gdimage, IMG_FILTER_BRIGHTNESS, -110);
imagefilter($gdimage, IMG_FILTER_CONTRAST, -30);
imagefilter($gdimage, IMG_FILTER_BRIGHTNESS, 70);
imagefilter($gdimage, IMG_FILTER_CONTRAST, -30);
// Maske anwenden
$masked = $this->imagealphamask($gdimage, $gdmask);
$mask->destroy();
// Mischen
$gdimage = $this->imagecopymerge_alpha($original,$masked, 0, 0, 0, 0, $image_width, $image_height, 100);
return $gdimage;
}
function getParams() {
global $REX,$I18N;
return array(
array(
'label' => $I18N->msg('imanager_effect_mask_image'),
'name' => 'maskimage',
'type' => 'media',
'default' => ''
)
);
}
function imagealphamask( &$picture, $mask ) {
// Get sizes and set up new picture
$xSize = imagesx($picture);
$ySize = imagesy($picture);
$newPicture = imagecreatetruecolor($xSize, $ySize);
imagesavealpha($newPicture, true);
imagefill($newPicture, 0, 0, imagecolorallocatealpha( $newPicture, 0, 0, 0, 127));
// Resize mask if necessary
if ( $xSize != imagesx($mask) || $ySize != imagesy($mask) ) {
$tempPic = imagecreatetruecolor($xSize, $ySize);
imagecopyresampled($tempPic, $mask, 0, 0, 0, 0, $xSize, $ySize, imagesx($mask), imagesy($mask));
imagedestroy($mask);
$mask = $tempPic;
}
// Perform pixel-based alpha map application
for ($x = 0; $x < $xSize; $x++) {
for ($y = 0; $y < $ySize; $y++) {
$alpha = imagecolorsforindex($mask, imagecolorat( $mask, $x, $y));
$alpha = 127 - floor($alpha[ 'red' ] / 2);
$color = imagecolorsforindex($picture, imagecolorat($picture, $x, $y));
imagesetpixel($newPicture, $x, $y, imagecolorallocatealpha($newPicture, $color[ 'red' ], $color[ 'green' ], $color[ 'blue' ], $alpha));
}
}
// Copy back to original picture
imagedestroy($picture);
$picture = $newPicture;
return $picture;
}
function imagecopymerge_alpha($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct) {
// creating a cut resource
$cut = imagecreatetruecolor($src_w, $src_h);
// copying relevant section from background to the cut resource
imagecopy($cut, $dst_im, 0, 0, $dst_x, $dst_y, $src_w, $src_h);
// copying relevant section from watermark to the cut resource
imagecopy($cut, $src_im, 0, 0, $src_x, $src_y, $src_w, $src_h);
// insert cut resource to destination image
imagecopymerge($dst_im, $cut, $dst_x, $dst_y, 0, 0, $src_w, $src_h, $pct);
return $dst_im;
}
}
Code: Alles auswählen
<?php
// Load source and mask
$source_file = 'rss_kopfbild_2.png';
$mask_file = 'rss_kopfbild_maske.png';
$source_file_split = explode('.',$source_file);
//if ( !file_exists($source_file_split[0] . '_merged' . $source_file_split[1]) ) {
$source = imagecreatefrompng($source_file);
$mask = imagecreatefrompng($mask_file);
$merge = imagecreatefrompng('rss_kopfbild_2.png');
$img_w = imagesx($merge);
$img_h = imagesy($merge);
// Filter
imagefilter($source, IMG_FILTER_BRIGHTNESS, -110);
imagefilter($source, IMG_FILTER_CONTRAST, -30);
imagefilter($source, IMG_FILTER_BRIGHTNESS, 70);
imagefilter($source, IMG_FILTER_CONTRAST, -30);
// Apply mask to source
imagealphamask($source, $mask);
// Output
imagepng($source,'./rss_kopfbild_masked.png');
// Merge
$m_src = imagecreatefrompng('./rss_kopfbild_masked.png');
imagecopymerge_alpha($merge,$m_src, 0, 0, 0, 0, $img_w, $img_h, 100);
imagejpeg($merge, './rss_kopfbild_merged.jpg',70);
function imagealphamask( &$picture, $mask ) {
// Get sizes and set up new picture
$xSize = imagesx($picture);
$ySize = imagesy($picture);
$newPicture = imagecreatetruecolor($xSize, $ySize);
imagesavealpha($newPicture, true);
imagefill($newPicture, 0, 0, imagecolorallocatealpha( $newPicture, 0, 0, 0, 127));
// Resize mask if necessary
if ( $xSize != imagesx($mask) || $ySize != imagesy($mask) ) {
$tempPic = imagecreatetruecolor($xSize, $ySize);
imagecopyresampled($tempPic, $mask, 0, 0, 0, 0, $xSize, $ySize, imagesx($mask), imagesy($mask));
imagedestroy($mask);
$mask = $tempPic;
}
// Perform pixel-based alpha map application
for ($x = 0; $x < $xSize; $x++) {
for ($y = 0; $y < $ySize; $y++) {
$alpha = imagecolorsforindex($mask, imagecolorat( $mask, $x, $y));
$alpha = 127 - floor($alpha[ 'red' ] / 2);
$color = imagecolorsforindex($picture, imagecolorat($picture, $x, $y));
imagesetpixel($newPicture, $x, $y, imagecolorallocatealpha($newPicture, $color[ 'red' ], $color[ 'green' ], $color[ 'blue' ], $alpha));
}
}
// Copy back to original picture
imagedestroy($picture);
$picture = $newPicture;
}
function imagecopymerge_alpha($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct) {
// creating a cut resource
$cut = imagecreatetruecolor($src_w, $src_h);
// copying relevant section from background to the cut resource
imagecopy($cut, $dst_im, 0, 0, $dst_x, $dst_y, $src_w, $src_h);
// copying relevant section from watermark to the cut resource
imagecopy($cut, $src_im, 0, 0, $src_x, $src_y, $src_w, $src_h);
// insert cut resource to destination image
imagecopymerge($dst_im, $cut, $dst_x, $dst_y, 0, 0, $src_w, $src_h, $pct);
}
//}
echo '<img src="./rss_kopfbild_merged.jpg" border="0">';
?>
Gruß,
Michael
Re: Per PHP erstellte Bilder in Medienpool einspeisen
Ich kenne mich hier leider auch nicht besser aus. Offensichltich fehlt aber das Ursprungsbild (wenn ich das richtig deute). Also würd ich schau wo und wie es übergeben wird. Evtl. bei anderen Effekten schauen wie dort das Ursprungsbild durchgeschleust wird.
Oder das maskieren läuft nicht korrekt...
Vielleicht hat hier jemand anderes aber auch noch konrektere Ideen...
Oder das maskieren läuft nicht korrekt...
Vielleicht hat hier jemand anderes aber auch noch konrektere Ideen...
Re: Per PHP erstellte Bilder in Medienpool einspeisen
Es gibt übrigens einen Filter "insert_image". Der macht aber nicht zufällig genau das was du vor hast wenn man da ein transparentes PNG einstellt?
Re: Per PHP erstellte Bilder in Medienpool einspeisen
Den hatte ich mir tatsächlich als Vorlage genommen. Das Problem ist, dass hier "einfach" nur das unbehandelte Bild auf das Ursprungsbild draufgerechnet wird.RexDude hat geschrieben:Es gibt übrigens einen Filter "insert_image". Der macht aber nicht zufällig genau das was du vor hast wenn man da ein transparentes PNG einstellt?
In meinem Fall muss ja das Ursprungsbild erst modifiziert (Effekte draufgerechnet und maskiert) werden und dieses Bild dann nochmal mit dem unbehandelten Ursprungsbild kombiniert werden. Und da komme ich irgendwie nicht weiter... Naja, ich probier mal weiter rum ...
Aber wenn sonst noch jemand nen Tipp hat ... ?
Gruß,
Michael
Re: Per PHP erstellte Bilder in Medienpool einspeisen
Hej,
ich aktiviere diesen Thread noch mal, da ich trotz vielem Ausprobieren immer noch keine Lösung gefunden habe und ich nun dringend eine brauche für mein o. g. Problem. Kann mir jemand helfen?
Ich glaub ich steh da irgendwie auf'm Schlauch ...
(Danke @RexDude für Deine bisherigen Tipps! )
Hier ist die aktuelle Version meines PlugIn-Scripts für den ImageManager:
Danke !!!!
Gruß, Michael
ich aktiviere diesen Thread noch mal, da ich trotz vielem Ausprobieren immer noch keine Lösung gefunden habe und ich nun dringend eine brauche für mein o. g. Problem. Kann mir jemand helfen?
Ich glaub ich steh da irgendwie auf'm Schlauch ...
(Danke @RexDude für Deine bisherigen Tipps! )
Hier ist die aktuelle Version meines PlugIn-Scripts für den ImageManager:
Code: Alles auswählen
<?php
/*
Das Originalbild wird mit Kontrast und Helligkeit verstärkt,
mit der geladenen Maske freigestellt und auf das Originalbild
aufgerechnet (so der Plan ... ;-))
*/
class rex_effect_mask extends rex_effect_abstract {
function execute () {
global $REX;
ob_start();
// Maske laden
$mask_file = $REX['MEDIAFOLDER'] .'/'. $this->params['maskimage'];
if (!file_exists($mask_file) || !is_file($mask_file)) {
$mask_file = dirname(__FILE__). '/../../media/brand.gif';
// stammt noch von dem PlugIn "Insert Image", welches ich als Vorlage verwendet habe
}
// Config
$mask = new rex_image($mask_file);
$mask->prepare();
$gdmask =& $mask->getImage();
$original =& $this->image->getImage();
$gdimage =& $this->image->getImage();
$image_width = $this->image->getWidth();
$image_height = $this->image->getHeight();
$mask_width = $mask->getWidth();
$mask_height = $mask->getHeight();
// Filter anwenden
imagefilter($gdimage, IMG_FILTER_BRIGHTNESS, -110);
imagefilter($gdimage, IMG_FILTER_CONTRAST, -30);
imagefilter($gdimage, IMG_FILTER_BRIGHTNESS, 70);
imagefilter($gdimage, IMG_FILTER_CONTRAST, -30);
// Maske anwenden
$this->imagealphamask($gdimage, $gdmask);
//$mask->destroy();
// Mischen
imagealphablending($gdimage, true);
imagesavealpha($gdimage, false);
imagealphablending($original, false);
imagesavealpha($original, true);
imagecopy($original, $gdimage, 0, 0, 0, 0, $image_width, $image_height);
/*$gdimage = $this->imagecopymerge_alpha($original,$masked, 0, 0, 0, 0, $image_width, $image_height, 100);
return $gdimage;*/
ob_end_flush();
}
function getParams() {
global $REX,$I18N;
return array(
array(
'label' => $I18N->msg('imanager_effect_mask_image'),
'name' => 'maskimage',
'type' => 'media',
'default' => ''
)
);
}
function imagealphamask( &$picture, $mask ) {
// Get sizes and set up new picture
$xSize = imagesx($picture);
$ySize = imagesy($picture);
$newPicture = imagecreatetruecolor($xSize, $ySize);
imagesavealpha($newPicture, true);
imagefill($newPicture, 0, 0, imagecolorallocatealpha( $newPicture, 0, 0, 0, 127));
// Resize mask if necessary
if ( $xSize != imagesx($mask) || $ySize != imagesy($mask) ) {
$tempPic = imagecreatetruecolor($xSize, $ySize);
imagecopyresampled($tempPic, $mask, 0, 0, 0, 0, $xSize, $ySize, imagesx($mask), imagesy($mask));
imagedestroy($mask);
$mask = $tempPic;
}
// Perform pixel-based alpha map application
for ($x = 0; $x < $xSize; $x++) {
for ($y = 0; $y < $ySize; $y++) {
$alpha = imagecolorsforindex($mask, imagecolorat( $mask, $x, $y));
$alpha = 127 - floor($alpha[ 'red' ] / 2);
$color = imagecolorsforindex($picture, imagecolorat($picture, $x, $y));
imagesetpixel($newPicture, $x, $y, imagecolorallocatealpha($newPicture, $color[ 'red' ], $color[ 'green' ], $color[ 'blue' ], $alpha));
}
}
// Copy back to original picture
imagedestroy($picture);
$picture = $newPicture;
//return $picture;
}
function imagecopymerge_alpha($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct) {
// creating a cut resource
$cut = imagecreatetruecolor($src_w, $src_h);
// copying relevant section from background to the cut resource
imagecopy($cut, $dst_im, 0, 0, $dst_x, $dst_y, $src_w, $src_h);
// copying relevant section from watermark to the cut resource
imagecopy($cut, $src_im, 0, 0, $src_x, $src_y, $src_w, $src_h);
// insert cut resource to destination image
imagecopymerge($dst_im, $cut, $dst_x, $dst_y, 0, 0, $src_w, $src_h, $pct);
return $dst_im;
}
}
Gruß, Michael