Class & afbeeldingen
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
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
class counter {
var $count;
function getcount() {
return $this->count;
}
function getstep() {
return $this->step;
}
function nextbuilding($newval) {
if(is_integer($newval))
$this->step = $newval;
}
function step() {
$this->count += $this->step;
}
function reset() {
$this->count = 1;
$this->step = 1;
}
function create($building) {
$$building = imagecreatefrompng("..pad../{$this->count}.png");
imagecopy($im, ${$building}, 0, 0, 0, 0, imagesx(${$building}), imagesy(${$building}));
}
}
$query = mysql_query("
SELECT id,a,b,c,d,e,f,g,h,i,j,k,l,m
FROM blabla
");
$ranch = mysql_fetch_row($query);
$im = imagecreatefromjpeg("...pad....jpg");
$ticker = new counter();
$ticker->reset();
$ticker->nextbuilding(1);
while($ticker->getcount() <= 13)
{
$nr1 = $ticker->getcount();
$nr2 = $ranch[$nr1];
$test = array("1" => "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m");
if($nr2 == 'Y')
{
// wel laag maken
$ticker->create($test[$nr1]);
}
else
{
// geen laag maken
}
$ticker->step();
}
var $count;
function getcount() {
return $this->count;
}
function getstep() {
return $this->step;
}
function nextbuilding($newval) {
if(is_integer($newval))
$this->step = $newval;
}
function step() {
$this->count += $this->step;
}
function reset() {
$this->count = 1;
$this->step = 1;
}
function create($building) {
$$building = imagecreatefrompng("..pad../{$this->count}.png");
imagecopy($im, ${$building}, 0, 0, 0, 0, imagesx(${$building}), imagesy(${$building}));
}
}
$query = mysql_query("
SELECT id,a,b,c,d,e,f,g,h,i,j,k,l,m
FROM blabla
");
$ranch = mysql_fetch_row($query);
$im = imagecreatefromjpeg("...pad....jpg");
$ticker = new counter();
$ticker->reset();
$ticker->nextbuilding(1);
while($ticker->getcount() <= 13)
{
$nr1 = $ticker->getcount();
$nr2 = $ranch[$nr1];
$test = array("1" => "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m");
if($nr2 == 'Y')
{
// wel laag maken
$ticker->create($test[$nr1]);
}
else
{
// geen laag maken
}
$ticker->step();
}
Hierna sla ik de afbeelding op en verwijder ik de afbeeldingen uit het geheugen.
Ik krijg echter steeds Warning: imagecopy() expects parameter 1 to be resource, null given
Waarom is parameter 1 geen resource?
Quick and dirty:
zet voor regel 29 dit : global $im;
De nette manier:
Geef $im mee aan de constructor van de class, en schrijf op regel 29
imagecopy($this->im, ${$building}, 0 ...
Geef maar een gil als je meer wil weten.
Verder, dit is niet zo netjes:
var $count;
Maak hier van:
private $count;
Zo heb je een private property gedeclareerd.
Edit: dit keer was John me voor :-)
Gewijzigd op 28/08/2012 17:51:04 door Erwin H
$im bestaat zo te zien niet.
John Berg op 28/08/2012 17:49:51:
$im wordt buiten de classe gemaakt en is dus niet binnen de classe bekend;
Quick and dirty:
zet voor regel 29 dit : global $im;
De nette manier:
Geef $im mee aan de constructor van de class, en schrijf op regel 29
imagecopy($this->im, ${$building}, 0 ...
Geef maar een gil als je meer wil weten.
Quick and dirty:
zet voor regel 29 dit : global $im;
De nette manier:
Geef $im mee aan de constructor van de class, en schrijf op regel 29
imagecopy($this->im, ${$building}, 0 ...
Geef maar een gil als je meer wil weten.
Ah met de "Quick and dirty" manier werkt het inderdaad meteen ;D De nette manier wil ik ook eens uitproberen. ik heb wel over constructors gelezen, ik dacht dat er dan zoiets bij moest:
Dat is echter niet zo want dan gaat het fout, hoe moet het dan wel?
Erwin H bedankt voor de tip over private ipv var ik heb het aangepast :)
Gewijzigd op 28/08/2012 18:09:48 door Water Lilly
Je moet dan een variabele meegeven in de constructor.
Nu werkt het inderdaad, bedankt!