PNG & JPG foto

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Stefan

Stefan

12/09/2007 23:03:00
Quote Anchor link
Hallo,

Ik ben bezig met een klein scriptje waarmee ik een foto achter een transparante PNG wil plakken.

Het lukt alleen niet zo lekker merk ik.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
    $voorgrond
= imagecreatefrompng('gfx/omlijst.png');
    $achtergrond = imagecreatefromjpeg($_GET['img']);
    
    imagecopymerge($voorgrond, $achtergrond,2,2,53,54,55,56,100);
    header("Content-Type: image/jpeg");
    imagejpeg($achtergrond);
    imagedestroy($achtergrond);
?>


Omlijst-png - http://hanzelijn-hattem.nl/gfx/omlijst.png
Voorbeeld-foto - http://hanzelijn-hattem.nl/fotomap/2007-09-11/02.jpg
URL script - URL

En zo moet het er uit zien..
Afbeelding

Iemand die kan helpen? (@Luuk: alvast bedankt ;-))

Thanks!
Gewijzigd op 01/01/1970 01:00:00 door Stefan
 
PHP hulp

PHP hulp

24/04/2024 11:35:00
 
PHP Newbie

PHP Newbie

12/09/2007 23:10:00
Quote Anchor link
Alvast graag gedaan Stefan,

Ik denk dat je eerst even een resize toe moet voegen aan die grote afbeelding
 
Arjan Schuurman

Arjan Schuurman

12/09/2007 23:14:00
Quote Anchor link
Is het echt de bedoeling dat hij als zon plaatje er uit komt?

Zo nee, kun je ook met iets van een table de randen om de foto doen..
 
Jan Koehoorn

Jan Koehoorn

12/09/2007 23:15:00
Quote Anchor link
Ik vind het wel een leuke vraag. Ik zal eens kijken wat ik voor je kan doen.
 
Stefan

Stefan

12/09/2007 23:24:00
Quote Anchor link
Resize werkt volgens mij niet, want het resultaat klopt nog steeds niet :-(
(Ben er al dik uur mee aan het klooien)
 
Jan Koehoorn

Jan Koehoorn

12/09/2007 23:25:00
Quote Anchor link
Ik heb ff een opzetje gemaakt

Je zou inderdaad het grotere plaatje moeten resizen.
 
PHP Newbie

PHP Newbie

12/09/2007 23:38:00
Quote Anchor link
Jan,

Leuk dat opzetje, maar misschien wel gemakkelijk om even de code met ons te delen. ;-)
 
PHP Newbie

PHP Newbie

13/09/2007 01:20:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
    
$bronvanhetbestand = '02.jpg';
$lijst = 'omlijst.png';

$resize_breedte = 43;
$resize_hoogte = 43;

$dimensions = getimagesize($bronvanhetbestand);

$bronbreedte = $dimensions[0];
$bronhoogte  = $dimensions[1];

$image = imagecreatefromjpeg($bronvanhetbestand);

$destination = imagecreatetruecolor($resize_breedte, $resize_hoogte);

imagecopyresampled($destination, $image, 0, 0, 0, 0, $resize_breedte, $resize_hoogte, $bronbreedte, $bronhoogte);

$achtergrond = imagecreatefrompng($lijst);

$dimensions2 = getimagesize($bronvanhetbestand);

$bronbreedte2 = $dimensions2[0];
$bronhoogte2  = $dimensions2[1];

imagecopyresampled($achtergrond, $destination,7,7,0,0,$bronbreedte2, $bronhoogte2, $bronbreedte2 + 43, $bronhoogte2 + 43);

header('content-type: image/jpeg');

imagejpeg($achtergrond);
?>


Dit werkt bijna. Alles staat goed, alleen heb je rechts en onder nog een zwarte balk. Maar er is hier vast wel iemand die weet hoe die weg kunnen.
 
Niek Weevers

Niek Weevers

13/09/2007 12:10:00
Quote Anchor link
Ik heb het ook gedaan voor http://www.ecotherm.nl/
Bedoel je zoiets?
 
Bart van der veen

bart van der veen

13/09/2007 13:02:00
Quote Anchor link
waarop moet je hem erachter plakken erop kan toch ook, of mis ik dan het punt..?
 
Stefan

Stefan

13/09/2007 13:40:00
Quote Anchor link
Uh, de foto moet op de achtergrond en dat transparante PNG'tje op de voorgrond lijkt mij?
 
Niek Weevers

Niek Weevers

13/09/2007 14:55:00
Quote Anchor link
Wat Bart zegt kan ook wel. Maar dan moet je exact de afmetingen en positionering hebben.
Het makkelijkst is om idd het transparante png erover heen te gooien.
 
Jan Koehoorn

Jan Koehoorn

13/09/2007 22:25:00
Quote Anchor link
Hier nog even de code van mijn voorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
    $voorgrond
= imagecreatefromjpeg('lijst2.jpg');
    $achtergrond = imagecreatefromjpeg('lijst.jpg');
    
    imagecopymerge($achtergrond, $voorgrond, 6, 6, 200, 200, 43, 43, 100);
    header("Content-Type: image/jpeg");
    imagejpeg($achtergrond);
    imagedestroy($achtergrond);
?>
 
Stefan

Stefan

13/09/2007 23:25:00
Quote Anchor link
Dank je Jan! :-)
 
PHP Newbie

PHP Newbie

13/09/2007 23:41:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$image_loc
= '02.jpg'; //de locatie van de afbeelding die ingelijst moet worden
$rand_loc = 'omlijst.png'; //de locatie van de lijst

$image = imagecreatefromjpeg($image_loc); //zet het in te lijsten afbeelding naar GD
$rand = imagecreatefrompng($rand_loc); //zet de lijst naar GD

list($bronbreedte, $bronhoogte) = getimagesize($image_loc); //get hoogte en breedte van de in te lijsten afbeelding

$thumb_image_dest = imagecreatetruecolor(43, 43); //maak een nieuwe GD afbeelding, voor de kleine in te lijsten afbeelding

imagecopyresampled($thumb_image_dest, $image, 0, 0, 0, 0, 43, 43, $bronbreedte, $bronhoogte); //resize de in te lijsten afbeelding

imagecopymerge($rand, $thumb_image_dest, 6, 6, 0, 0, 43, 43, 100); //voeg de kleine in te lijsten afbeelding samen met de rand

header("Content-Type: image/jpeg"); //geef een JPG header

imagejpeg($rand,NULL,100); //output de afbeelding

imagedestroy($rand); //en verwijder de afbeelding
?>


En de volledig werkende code, met resize.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.