Flashhilfe.de - Flash Community

PHP Image Ecke an/abschneiden?

 


AntwortenRegistrieren Seite1  

schlampe#1
Benutzerbild von schlampe
Beiträge: 143
Wohnort: Steinfurt
Registriert: Oct 2004

03.05.2010, 12:22

Hallo!

Ich steht vor einem Problem und frage mich ob das in PHP eigentlich geht und zwar möchte ich ein PNG per PHP Script erstellen lassen was mir gleichzeitig 2 Ecken abschneidet..
Ich hab mal ein Beispiel hier angefügt:



Ich möchte oben rechts und unten links die überschüssigen ecken weggeschnitten haben.

Geht das in PHP ?
Werbung
Beiträge: 0
Registriert: Feb 2016


schlampe#2
Benutzerbild von schlampe
Beiträge: 143
Wohnort: Steinfurt
Registriert: Oct 2004

Themenautor/in

03.05.2010, 13:28

Hallo nochmal!

Ich hab nun mit der imagepolygon funktion rumgespielt und eine Maske im genau dem Ausschnitt erzeugt wie ich es gerne ausgeschnitten hätte.. ist das nun irgendwie möglich PHP zu sagen "schneid das aus was innerhalb des Polygons liegt ?


schlampe#3
Benutzerbild von schlampe
Beiträge: 143
Wohnort: Steinfurt
Registriert: Oct 2004

Themenautor/in

03.05.2010, 15:18

Das hier ist mein Script was aber leider nur die Polygone zeichnet.. gibt es keine Möglichkeit die inne Fläche mit meinem JPG oder PNG zu "füllen" anstatt der Farbe ?

ActionScript:
1
2
3
4
5
6
7
8
9
10
<?
$img = imagecreate(200, 200);
$bg = imagecolorallocate($img, 0, 0, 0);
$white = imagecolorallocate($img, 50, 255, 255);
$punkte = array(0,0,172,0,187,12,187,130,11,130,0,120);
$anzahl = count($punkte) / 2;
imagefilledpolygon($img, $punkte, $anzahl, $white);
header("Content-Type: image/png");
imagepng($img);
?>
Geändert von schlampe am 03.05.10 um 15:19 Uhr
Sebastian#4
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

03.05.2010, 15:20

Ich weis nicht ob dies auch mit den PHP Funktionen möglich ist. Wo mit es aber auf jeden Fall funktionieren sollte ist ImageMagick. Dies ist ein Command Line Tool das du einfach per:
PHP:
1
2
3
4
system();
// oder
exec();

aufrufen kannst.

Allerdings ist dies davon abhängig ob du etwas am Server installieren darfst bzw. es bereits installiert ist. - z.B. bei Hosteurope ist es vorinstalliert.
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
Geändert von Sebastian am 03.05.10 um 15:21 Uhr
Werbung
Beiträge: 0
Registriert: Feb 2016


schlampe#5
Benutzerbild von schlampe
Beiträge: 143
Wohnort: Steinfurt
Registriert: Oct 2004

Themenautor/in

03.05.2010, 15:58

Also komisch ist das das sorum geht:



Kann man das net irgendwie "umdrehen" ?

Aktuelles Script:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
// create a blank image
$image = imagecreatetruecolor(400, 300);
$bild = imagecreatefromjpeg("070510.jpg");
imagecopy($image, $bild, 0, 0, 0, 0, 200, 200);

// fill the background color
$bg = imagecolorallocate($image, 255, 255, 255);
// choose a color for the ellipse
$col_ellipse = imagecolorallocate($image, 0, 0, 0);
// draw the white ellipse
//- imagefilledellipse($image, 200, 150, 300, 200, $col_ellipse);
// polygon
$punkte = array(2,2,174,2,189,14,189,132,13,132,2,122);
$anzahl = count($punkte) / 2;
imagefilledpolygon($image, $punkte, $anzahl, $white);
// output the picture
header("Content-type: image/png");
imagepng($image);
?>
Geändert von schlampe am 03.05.10 um 15:59 Uhr
schlampe#6
Benutzerbild von schlampe
Beiträge: 143
Wohnort: Steinfurt
Registriert: Oct 2004

Themenautor/in

03.05.2010, 17:32

Also wenn jetzt noch jemand ne Idee hat wie ich statt des Blau mein JPG File reinbekomme wäre es gelöst..

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?
// header setzten
header("Content-type: image/png");
header("Content-Disposition: filename=test.png");

// bildurl
$bildurl = "070510.jpg";

// polygon
$values = array(2,2,174,2,189,14,189,132,13,132,2,122);

// create image
$image = imagecreatetruecolor(200, 140);

// allocate colors
$bg  = imagecolorallocate($image, 0, 0, 0);
$blue = imagecolorallocate($image, 0, 0, 255);

// draw a polygon
imagefilledpolygon($image, $values, 6, $blue);

// alpha
$color = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $color);
imagealphablending($image, true); // setting alpha blending on
imagesavealpha($image, true); // save alphablending setting (important)

// flush image
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>
Geändert von schlampe am 03.05.10 um 17:35 Uhr
jomac#7
Benutzerbild von jomac
Beiträge: 89
Wohnort: CH
Registriert: Jun 2010

03.06.2010, 21:08

Eine einfache Lösung ist du erstellst ein Bild mit gewünschtem Hintergrund, dann füllst du den von dir Gewünschten Bereich statt mit Blau mit einer 100% transparenten Farbe. Dann kopierst due das Bild mit 0% Transparenz mit imagecopymerge auf dein erstes Bild.
Resultat = Beim transparenten Bereich passiert gar nichts und der Rest wird von deinem Hintergrund überdeckt.

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de