gd library
Beste scripters,
wie kan me helpen ik wil in gd libery verschillende plaatje overelkaar plakken maar het plaatje wat er onder ligt moet nog wel te zien zijn.
Ik doe het nu met de functie imagecopy maar dat werkt niet, wat doe ik verkeerd.
Graag advies
Mvg,
Phpkunst
wie kan me helpen ik wil in gd libery verschillende plaatje overelkaar plakken maar het plaatje wat er onder ligt moet nog wel te zien zijn.
Ik doe het nu met de functie imagecopy maar dat werkt niet, wat doe ik verkeerd.
Graag advies
Mvg,
Phpkunst
Gewijzigd op 01/01/1970 01:00:00 door Phpkunst t
Het is handiger als je de code die je nu hebt even post. :)
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
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
<?php
header("Content-type: image/png");
$image = imageCreateTruecolor(485,485);
if(!empty($_GET))
{
extract($_GET);
}
$breedte=$h*2;
$hoogte=$b*2;
if (!empty($machine))
{
for ($tel=1;$tel<=$aantal;$tel++)
{
if(!empty($Y[$tel]) AND ($X[$tel]))
{
$as[$tel] = imagecreatefrompng("./assen/$tel$machine.png");
$as_breedte[$tel] = imagesx($as[$tel]);
$as_hoogte[$tel] = imagesy($as[$tel]);
imagecreatetruecolor($as_breedte[$tel], $as_hoogte[$tel]);
imagecopy($image, $as[$tel], $X[$tel], $Y[$tel], 0, 0, $as_breedte[$tel], $as_hoogte[$tel]);
}
}
}
$transparent = imageColorAllocate($image, 0, 0, 0);
imageColorTransparent($image, $transparent);
$black = imageColorAllocate($image, 1, 1, 1);
ImageRectangle ($image, 0, 0, $hoogte, $breedte,$black);
imagePng($image, '' , 100);
imagedestroy($image);
?>
header("Content-type: image/png");
$image = imageCreateTruecolor(485,485);
if(!empty($_GET))
{
extract($_GET);
}
$breedte=$h*2;
$hoogte=$b*2;
if (!empty($machine))
{
for ($tel=1;$tel<=$aantal;$tel++)
{
if(!empty($Y[$tel]) AND ($X[$tel]))
{
$as[$tel] = imagecreatefrompng("./assen/$tel$machine.png");
$as_breedte[$tel] = imagesx($as[$tel]);
$as_hoogte[$tel] = imagesy($as[$tel]);
imagecreatetruecolor($as_breedte[$tel], $as_hoogte[$tel]);
imagecopy($image, $as[$tel], $X[$tel], $Y[$tel], 0, 0, $as_breedte[$tel], $as_hoogte[$tel]);
}
}
}
$transparent = imageColorAllocate($image, 0, 0, 0);
imageColorTransparent($image, $transparent);
$black = imageColorAllocate($image, 1, 1, 1);
ImageRectangle ($image, 0, 0, $hoogte, $breedte,$black);
imagePng($image, '' , 100);
imagedestroy($image);
?>
Voor een indruk wat voor soort script het is ga naar http://www.webreflexion.nl/mekenkamp/new/test.php
Weet iemand de oplossing ik zoek er namelijk al een maand naar, maar heb niet de oplossing gevonden.
Wie heeft hier ervaring mee en kan me duwtje de goede richting in geven.
Mvg,
Phpkunst
Wie heeft hier ervaring mee en kan me duwtje de goede richting in geven.
Mvg,
Phpkunst
Ik heb me even op je probleem gestort. Het resultaat kun je bekijken op jankoehoorn.nl. Je kunt dit ook gebruiken voor een watermerk-script.
Laat even weten of dit is wat je bedoelt, dan post ik de code.
Laat even weten of dit is wat je bedoelt, dan post ik de code.
Heel erg bedankt dat het plaatje er onder wat minder duidelijk wordt is zeker niet te voorkomen.
als dat niet kan dan doe ik wel zo.
bedankt,
Phpkunst
als dat niet kan dan doe ik wel zo.
bedankt,
Phpkunst
Hier is de code:
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
ini_set ('display_errors', 1);
error_reporting (E_ALL);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Merging Images with PHP</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
#container {
margin: 8px auto;
width: 600px;
border: 1px solid #ccc;
text-align: center;
}
h1 {
font: bold 18px georgia;
color: #fff;
background-color: #666;
margin: 8px 16px;
padding: 5px;
}
h2 {
font: bold 14px georgia;
color: #666;
background-color: #fff;
}
img {
border: 1px solid #ccc;
padding: 9px;
}
</style>
</head>
<body>
<div id="container">
<h1>PHP GD: merging images</h1>
<h2>Dit is plaatje 1</h2>
<p>
<img src="gd1.jpg" alt="plaatje 1">
</p>
<h2>Dit is plaatje 2</h2>
<p>
<img src="gd2.jpg" alt="plaatje 2">
</p>
<h2>Dit is plaatje 3</h2>
<p>
<img src="gd3.jpg" alt="plaatje 3">
</p>
<?php
// image identifiers aanmaken
$img1 = imagecreatefromjpeg ('gd1.jpg');
$img2 = imagecreatefromjpeg ('gd2.jpg');
$img3 = imagecreatefromjpeg ('gd3.jpg');
// de hoogte en de breedte weet ik al
$dst = imagecreatetruecolor (400, 400);
// plaatje 1 kunnen we gewoon kopiëren
imagecopyresampled ($dst, $img1, 0, 0, 0, 0, 400, 400, 400, 400);
// plaatje 2 mergen. Het laatste argument bepaalt de mate van transparantie (0 - 100)
imagecopymerge ($dst, $img2, 0, 0, 0, 0, 400, 400, 50);
// plaatje 3 mergen.
imagecopymerge ($dst, $img3, 0, 0, 0, 0, 400, 400, 30);
// nieuwe plaatje genereren (zorg dat je de goede rechten hebt in de map!)
imagejpeg ($dst, 'gd4.jpg', 85);
// anders kun je hem later niet meer handmatig wissen
chmod ('gd4.jpg', 0644);
// opschonen
imagedestroy ($img1);
imagedestroy ($img2);
imagedestroy ($img3);
imagedestroy ($dst);
?>
<h2>En dit zijn de plaatjes door elkaar heen</h2>
<p>
<img src="gd4.jpg" alt="merged picture">
</p>
</div>
</body>
</html>
ini_set ('display_errors', 1);
error_reporting (E_ALL);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Merging Images with PHP</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
#container {
margin: 8px auto;
width: 600px;
border: 1px solid #ccc;
text-align: center;
}
h1 {
font: bold 18px georgia;
color: #fff;
background-color: #666;
margin: 8px 16px;
padding: 5px;
}
h2 {
font: bold 14px georgia;
color: #666;
background-color: #fff;
}
img {
border: 1px solid #ccc;
padding: 9px;
}
</style>
</head>
<body>
<div id="container">
<h1>PHP GD: merging images</h1>
<h2>Dit is plaatje 1</h2>
<p>
<img src="gd1.jpg" alt="plaatje 1">
</p>
<h2>Dit is plaatje 2</h2>
<p>
<img src="gd2.jpg" alt="plaatje 2">
</p>
<h2>Dit is plaatje 3</h2>
<p>
<img src="gd3.jpg" alt="plaatje 3">
</p>
<?php
// image identifiers aanmaken
$img1 = imagecreatefromjpeg ('gd1.jpg');
$img2 = imagecreatefromjpeg ('gd2.jpg');
$img3 = imagecreatefromjpeg ('gd3.jpg');
// de hoogte en de breedte weet ik al
$dst = imagecreatetruecolor (400, 400);
// plaatje 1 kunnen we gewoon kopiëren
imagecopyresampled ($dst, $img1, 0, 0, 0, 0, 400, 400, 400, 400);
// plaatje 2 mergen. Het laatste argument bepaalt de mate van transparantie (0 - 100)
imagecopymerge ($dst, $img2, 0, 0, 0, 0, 400, 400, 50);
// plaatje 3 mergen.
imagecopymerge ($dst, $img3, 0, 0, 0, 0, 400, 400, 30);
// nieuwe plaatje genereren (zorg dat je de goede rechten hebt in de map!)
imagejpeg ($dst, 'gd4.jpg', 85);
// anders kun je hem later niet meer handmatig wissen
chmod ('gd4.jpg', 0644);
// opschonen
imagedestroy ($img1);
imagedestroy ($img2);
imagedestroy ($img3);
imagedestroy ($dst);
?>
<h2>En dit zijn de plaatjes door elkaar heen</h2>
<p>
<img src="gd4.jpg" alt="merged picture">
</p>
</div>
</body>
</html>
hey heel erg bedankt, ben trots op dat php hulp nog altijd de nadruk legt op hulp ;)
Mvg,
Phpkunst
Mvg,
Phpkunst
Graag gedaan. Ik heb ook nog even een watermerk test gedaan. Krijg het alleen aan de praat als ik een transparent GIF gebruik voor het watermerk.
oke bedankt
Leuk die gd ;-)
Maar ik loop nu te proberen om die plaatjes allemaal dezelfde 'zichtbaarheid' te geven. Ik kom het dichtst in de buurt als ik de onderste 99 'zichtbaarheid' geef, de middelste 66 en de bovenste 33.
Toch zie ik nog een kleine verandering als ik de onderste foto omwissel met de bovenste foto. Vergelijk ze hier maar eens.
Weet iemand hoe je echt goed kan berekenen wat de verhoudingen moeten zijn?
Maar ik loop nu te proberen om die plaatjes allemaal dezelfde 'zichtbaarheid' te geven. Ik kom het dichtst in de buurt als ik de onderste 99 'zichtbaarheid' geef, de middelste 66 en de bovenste 33.
Toch zie ik nog een kleine verandering als ik de onderste foto omwissel met de bovenste foto. Vergelijk ze hier maar eens.
Weet iemand hoe je echt goed kan berekenen wat de verhoudingen moeten zijn?
Edit:
Zie het al: 100/(aantal plaatjes+1) is bovenste plaatje, + 100/(aantalplaatjes+1) is 1-na bovenste plaatje, enzovoort
Gewijzigd op 01/01/1970 01:00:00 door Lasse




