PNG & JPG foto
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)
1
2
3
4
5
6
7
8
9
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);
?>
$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..
Iemand die kan helpen? (@Luuk: alvast bedankt ;-))
Thanks!
Gewijzigd op 01/01/1970 01:00:00 door Stefan
Ik denk dat je eerst even een resize toe moet voegen aan die grote afbeelding
Zo nee, kun je ook met iets van een table de randen om de foto doen..
Ik vind het wel een leuke vraag. Ik zal eens kijken wat ik voor je kan doen.
(Ben er al dik uur mee aan het klooien)
Leuk dat opzetje, maar misschien wel gemakkelijk om even de code met ons te delen. ;-)
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
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);
?>
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.
http://www.ecotherm.nl/
Bedoel je zoiets?
Ik heb het ook gedaan voor Bedoel je zoiets?
waarop moet je hem erachter plakken erop kan toch ook, of mis ik dan het punt..?
Uh, de foto moet op de achtergrond en dat transparante PNG'tje op de voorgrond lijkt mij?
Het makkelijkst is om idd het transparante png erover heen te gooien.
Code (php)
1
2
3
4
5
6
7
8
9
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);
?>
$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);
?>
Dank je Jan! :-)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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
?>
$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.