[PHP] meerdere afbeeldingen in output (imagepng) probleem

Pagina: 1
Acties:

Onderwerpen


  • RAZORDUDE
  • Registratie: September 2001
  • Laatst online: 02-12-2021

RAZORDUDE

aka MARAUD3R

Topicstarter
Ik ben dus een script aan het maken waarmee je via een formulier afbeeldingen kan kiezen die je op de basis afbeelding wilt.
Het werkt allemaal prima, maar als ik de afbeelding wil opslaan dan en daarna die open dan zie ik dat hij alleen de basis afbeelding heeft opgeslagen, en het is dus de bedoeling dat die keuze afbeeldingen ook mee opgeslagen worden, en dus de gegenereerde afbeelding opslaat.

Als de afbeelding wil opslaan kan ik kiezen tussen png of bmp en als ik dan als bmp opsla en die dan open dan zie ik dat daar wel de gegenereerde images op staan.

Ik heb het liefst dat het als png of jpeg wordt opgeslagen omdat het voor anderen is, en die de uiteindelijke afbeelding dan kunnen opslaan en gebruiken op forums oid, en niet altijd zin of de kennis of mogenlijkheden hebben om bmp om te zetten naar jpg ofzo.

Als ik in het script bijvoorbeeld "$text = "blaat"" doe ipv "$text = $text_in_form" en dan opsla als png dan slaat hij dat wel op.

De code voor de output image:

PHP:
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<? 
    header("Content-type: image/png"); 
    $im                 = imagecreatefrompng("myscheme.png"); // base image
    $im_badge           = imagecreatefrompng($badge); // $badge wordt dus uit form gehaald.
    $im_banner          = imagecreatefrompng($banner);
    $text_nick          =  "blaat";
    $text_color         = imagecolorallocate($im, 0, 0, 0);
    $im_race_text       = imagecreatefrompng($im_race_text_form);
    $im_race_image      = imagecreatefrompng($im_race_image_form);
    // color primary
    $color_primary_1    = $color_primary_1_form;
    $color_primary_2    = $color_primary_2_form;
    $color_primary_3    = $color_primary_3_form;
    // color secondary
    $color_secondary_1  = $color_secondary_1_form;
    $color_secondary_2  = $color_secondary_2_form;
    $color_secondary_3  = $color_secondary_3_form;
    // color trim
    $color_trim_1       = $color_trim_1_form;
    $color_trim_2       = $color_trim_2_form;
    $color_trim_3       = $color_trim_3_form;
    // color weapon
    $color_weapon_1     = $color_weapon_1_form;
    $color_weapon_2     = $color_weapon_2_form;
    $color_weapon_3     = $color_weapon_3_form;
    // color trim2
    $color_trim2_1      = $color_trim2_1_form;
    $color_trim2_2      = $color_trim2_2_form;
    $color_trim2_3      = $color_trim2_3_form;
    // color settings
    $color_primary_set      = imagecolorallocate($im, $color_primary_1, $color_primary_2, $color_primary_3);
    $color_secondary_set    = imagecolorallocate($im, $color_secondary_1, $color_secondary_2, $color_secondary_3);
    $color_trim_set         = imagecolorallocate($im, $color_trim_1, $color_trim_2, $color_trim_3);
    $color_weapon_set       = imagecolorallocate($im, $color_weapon_1, $color_weapon_2, $color_weapon_3);
    $color_trim2_set        = imagecolorallocate($im, $color_trim2_1, $color_trim2_2, $color_trim2_3);
    // color information - primary
    imagefilledrectangle($im, 413, 40, 433, 58, $color_primary_set);
    // color information - secondary
    imagefilledrectangle($im, 413, 66, 433, 84, $color_secondary_set);
    // color information - trim
    imagefilledrectangle($im, 413, 95, 433, 113, $color_trim_set);
    // color information - weapon
    imagefilledrectangle($im, 413, 122, 433, 140, $color_weapon_set);
    // color information - trim2
    imagefilledrectangle($im, 413, 149, 433, 167, $color_trim2_set);
    // image overlays
    imagecopymerge($im, $im_badge, 137, 87, 0, 0, 64, 64, 100);
    imagecopymerge($im, $im_banner, 220, 87, 0, 0, 64, 96, 100);
    imagecopymerge($im, $im_race_text, 124, 13, 0, 0, 178, 28, 100);
    imagecopymerge($im, $im_race_image, 19, 27, 0, 0, 100, 156, 100);
    // text nickname
    imagestring($im, 4, 139, 45, $text_nick, $text_color);
    //$pngorig = imagepng($im);
    //png2wbmp($pngorig, blaat, 453, 207, 100);
    imagepng ($im);
    imagedestroy($im); 
?>


EDIT:

Dit is de code dat na het formulier komt:
PHP:
1
2
3
4
5
if (isset($_POST['send'])) { // na het versturen van de formulier gegevens moet dit dus worden uitgevoerd
$im_race_text_form = "images/race_text/sm.png";  // dit word op een of andere manier niet uitgevoerd
$im_race_image_form = "images/race_image/sm.png"; // dit word ook niet uitgevoerd
echo "[img]\"armyscheme.php\"/[/img]"; // dit voert hij goed uit
}


EDIT2:

De code hierboven heb ik al vervangen door verborgen inputs met de variabelen hierboven, dus dat probleem is al opgelost, maar het hoofd probleem is nog niet opgelost, het goed opslaan van de output.

Ik heb al heel veel geprobeerd met imagepng/jpeg, en png2wbmp etc, en gezocht op php.net, en hier etc, maar helaas ;) .

[ Voor 104% gewijzigd door RAZORDUDE op 17-09-2005 23:31 ]

[ www.coredamage.com ] - [ Z mod (W40k:DOW) ]


Verwijderd

RAZORDUDE schreef op donderdag 15 september 2005 @ 17:47:
Als ik in het script bijvoorbeeld "$text = "blaat"" doe ipv "$text = $text_in_form" en dan opsla als png dan slaat hij dat wel op.
Dan gaat het daar ook fout lijkt me. De code waarmee je het dynamische plaatje maakt lijkt me wel relevant om hier te posten, liefst in [ php] tags.

  • RAZORDUDE
  • Registratie: September 2001
  • Laatst online: 02-12-2021

RAZORDUDE

aka MARAUD3R

Topicstarter
De code:

PHP:
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<? 
    header("Content-type: image/png"); 
    $im                 = imagecreatefrompng("myscheme.png"); // base image
    $im_badge           = imagecreatefrompng($badge); // $badge wordt dus uit form gehaald.
    $im_banner          = imagecreatefrompng($banner);
    $text_nick          =  "blaat";
    $text_color         = imagecolorallocate($im, 0, 0, 0);
    $im_race_text       = imagecreatefrompng($im_race_text_form);
    $im_race_image      = imagecreatefrompng($im_race_image_form);
    // color primary
    $color_primary_1    = $color_primary_1_form;
    $color_primary_2    = $color_primary_2_form;
    $color_primary_3    = $color_primary_3_form;
    // color secondary
    $color_secondary_1  = $color_secondary_1_form;
    $color_secondary_2  = $color_secondary_2_form;
    $color_secondary_3  = $color_secondary_3_form;
    // color trim
    $color_trim_1       = $color_trim_1_form;
    $color_trim_2       = $color_trim_2_form;
    $color_trim_3       = $color_trim_3_form;
    // color weapon
    $color_weapon_1     = $color_weapon_1_form;
    $color_weapon_2     = $color_weapon_2_form;
    $color_weapon_3     = $color_weapon_3_form;
    // color trim2
    $color_trim2_1      = $color_trim2_1_form;
    $color_trim2_2      = $color_trim2_2_form;
    $color_trim2_3      = $color_trim2_3_form;
    // color settings
    $color_primary_set      = imagecolorallocate($im, $color_primary_1, $color_primary_2, $color_primary_3);
    $color_secondary_set    = imagecolorallocate($im, $color_secondary_1, $color_secondary_2, $color_secondary_3);
    $color_trim_set         = imagecolorallocate($im, $color_trim_1, $color_trim_2, $color_trim_3);
    $color_weapon_set       = imagecolorallocate($im, $color_weapon_1, $color_weapon_2, $color_weapon_3);
    $color_trim2_set        = imagecolorallocate($im, $color_trim2_1, $color_trim2_2, $color_trim2_3);
    // color information - primary
    imagefilledrectangle($im, 413, 40, 433, 58, $color_primary_set);
    // color information - secondary
    imagefilledrectangle($im, 413, 66, 433, 84, $color_secondary_set);
    // color information - trim
    imagefilledrectangle($im, 413, 95, 433, 113, $color_trim_set);
    // color information - weapon
    imagefilledrectangle($im, 413, 122, 433, 140, $color_weapon_set);
    // color information - trim2
    imagefilledrectangle($im, 413, 149, 433, 167, $color_trim2_set);
    // image overlays
    imagecopymerge($im, $im_badge, 137, 87, 0, 0, 64, 64, 100);
    imagecopymerge($im, $im_banner, 220, 87, 0, 0, 64, 96, 100);
    imagecopymerge($im, $im_race_text, 124, 13, 0, 0, 178, 28, 100);
    imagecopymerge($im, $im_race_image, 19, 27, 0, 0, 100, 156, 100);
    // text nickname
    imagestring($im, 4, 139, 45, $text_nick, $text_color);
    //$pngorig = imagepng($im);
    //png2wbmp($pngorig, blaat, 453, 207, 100);
    imagepng ($im);
    imagedestroy($im); 
?>

[ Voor 4% gewijzigd door RAZORDUDE op 15-09-2005 19:38 ]

[ www.coredamage.com ] - [ Z mod (W40k:DOW) ]


Acties:
  • 0 Henk 'm!

  • RAZORDUDE
  • Registratie: September 2001
  • Laatst online: 02-12-2021

RAZORDUDE

aka MARAUD3R

Topicstarter
*Even de startpost bijgewerkt

[ www.coredamage.com ] - [ Z mod (W40k:DOW) ]


Acties:
  • 0 Henk 'm!

  • EdwinV
  • Registratie: Januari 2004
  • Laatst online: 27-08 09:44
Dit zal niet werken, omdat je de variabelen $im_race_text_form en $im_race_image_form opgeeft in de ene pagina en ze daarna in de volgende php pagina pas wilt gaan gebruiken.

Zet bovenaan je armyscheme.php eens dit:
PHP:
1
2
3
<?php
error_reporting(E_ALL);
?>


En roep daarna het bestand rechtstreeks via je browser aan. Als het goed is zie je dan een foutmelding dat hij de variabelen niet heeft kunnen vinden.

Om toch gebruik te maken van de variabelen kan je ze opslaan in de sessie in je pagina waar het formulier naar toe verzonden wordt. Vervolgens kan je in je armyscheme.php deze variabelen uitlezen en gebruiken bij het genereren van het plaatje.

Acties:
  • 0 Henk 'm!

  • RAZORDUDE
  • Registratie: September 2001
  • Laatst online: 02-12-2021

RAZORDUDE

aka MARAUD3R

Topicstarter
Thanx, maar ik heb het probleem al op een andere manier opgelost, maar komt vast nog wel van pas ;)
Maar het hoofd probleem is nog steeds niet opgelost, dus het goed opslaan van de output.

[ www.coredamage.com ] - [ Z mod (W40k:DOW) ]


  • RAZORDUDE
  • Registratie: September 2001
  • Laatst online: 02-12-2021

RAZORDUDE

aka MARAUD3R

Topicstarter
*TS nog even aangepast

[ www.coredamage.com ] - [ Z mod (W40k:DOW) ]


Acties:
  • 0 Henk 'm!

  • RAZORDUDE
  • Registratie: September 2001
  • Laatst online: 02-12-2021

RAZORDUDE

aka MARAUD3R

Topicstarter
*kickje

[ www.coredamage.com ] - [ Z mod (W40k:DOW) ]


Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Je hebt register_globals zeker niet aanstaan? Ga dan eens $_REQUEST[] gebruiken ipv $form_item_naam...

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

  • RAZORDUDE
  • Registratie: September 2001
  • Laatst online: 02-12-2021

RAZORDUDE

aka MARAUD3R

Topicstarter
Dat staat wel aan, maar ik zie nu dat als ik als ik de output image wil opslaan, ik alleen als BMP op kan slaan, en staat er als standaard naam "naamloos".
Dat zou toch niet moeten gezien ik "imagepng ($im); " op het eind heb staan, en "header("Content-type: image/png"); " in het begin :? .

Als ik de doelpagina direct laad ipv na het verzenden van de form, dan kan ik wel opslaan als PNG.
Als ik dan iets er aan toevoeg bijvoorbeeld "http://www.blaat.nl/doelimage.php?text=blaat" en dan die image opsla, dan slaat hij wel met "blaat" op.

[ Voor 83% gewijzigd door RAZORDUDE op 19-09-2005 04:53 ]

[ www.coredamage.com ] - [ Z mod (W40k:DOW) ]


Acties:
  • 0 Henk 'm!

  • RAZORDUDE
  • Registratie: September 2001
  • Laatst online: 02-12-2021

RAZORDUDE

aka MARAUD3R

Topicstarter
Ik heb al een oplossing gevonden.
Ik heb dit toegevoegd en nu als ik de gegevens heb verzonden op het formulier dan krijg ik een "opsla venster", en als ik dan de afbeelding vervolgens opsla dan staan de andere images er op :*) .

PHP:
1
header("Content-Disposition: attachment; filename=myscheme.png")

[ Voor 6% gewijzigd door RAZORDUDE op 20-09-2005 00:48 ]

[ www.coredamage.com ] - [ Z mod (W40k:DOW) ]

Pagina: 1