Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
La tecnologia SQD-Mini LED di TCL arriva sul taglio da 65 pollici con la serie C8L: 2040 zone, pannello WHVA 2.0 e un picco che alle rilevazioni delle sonde tocca i 4400 nit nel profilo Filmmaker e un HDR quasi perfetto
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro
Wireless 2.4 GHz, Bluetooth 5.4, cancellazione attiva del rumore, design pieghevole e un'autonomia che mette in imbarazzo prodotti che costano il doppio. Le Maestro 500 non eccellono in nulla, ma offrono tutto. E a questo prezzo è difficile chiedere di più
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-07-2006, 14:31   #1
ianaz
Senior Member
 
L'Avatar di ianaz
 
Iscritto dal: Jan 2005
Città: London, United Kingdom
Messaggi: 959
[PHP] domanda $this->variabile

Salve,
ho appena iniziato con l'utilizzo delle classi e della libreria gd.
Questo pomeriggio mi sono trovato dinnanzi il seguente problema:

Il $this->variabile non mi funziona...
Mi dice Notice: Undefined property: im in c:\programmi\easyphp1-8\www\img.class.php on line 41
Il mio problema é come fare ad utilizzare la variabile $im nelle altre funzioni?
Potrei passarlo in ogni funzione ma mi pare piuttosto un codice sporco
Il codice della classe é;

potrebbero esserci piccoli errori che per provare forse ho dimenticato di rimettere a posto...
Codice PHP:
<?php
    
class img
    
{
        var 
$errore = array(
                                
"Errore sconosciuto"// 0
                                
"Errore nel caricamento dell immagine" // 1
                        
);

        function 
loadImg($img_percorso$testo)
        {
            
$im imagecreatefromjpeg($img_percorso);    
            
$this->insertLogo($im"logo.png");
            
$this->insertTesto($testo);
            
$this->saveImg();
            return 
1;
        }
        
        function 
insertLogo($im$logoz="logo.png")
        {
            
$watermark imagecreatefrompng($logoz);
            
$waterm_w  imagesx($watermark);
            
$waterm_h  imagesy($watermark);
            
imagecopymerge($im$watermark0000$waterm_w$waterm_h100);
        }
        
        function 
insertTesto($testo)
        {
        
            
$colore['bianco']    = imagecolorallocate($im255255255);
            
$colore['blu']        = imagecolorallocate($im00255);
            
$colore['rosso']    = imagecolorallocate($im25500);
            
$colore['verde']    = imagecolorallocate($im02550);
            
$colore['nero']        = imagecolorallocate($im000);
            
$width              imagesx($this->im);
            
$height             imagesy($this->im);
            
$testo                 "www.ianaz.ch";
            
$lung_testo         strlen($testo);
            
imagestring($this->im5$width/2-$lung_testo*5$height-20$testo$colore['bianco']);
        }
        function 
saveImg()
        {
            
imagepng($this->im"lol.png");
        }
    }
    
$img = new img;
?>

Nell'altra pagina ho fatto un semplice
Codice PHP:
<?php
    
include "img.class.php";
    
$nome_img 'img.jpg';
    
$immagine $img->loadImg($nome_img"www.ianaz.ch");
    if(
$immagine == 1)
    {
        echo 
"<p>Immagine modificata correttamente!</p>";
    }
?>
__________________
zattix

Ultima modifica di ianaz : 10-07-2006 alle 15:40.
ianaz è offline   Rispondi citando il messaggio o parte di esso
Old 10-07-2006, 16:13   #2
max246
Senior Member
 
Iscritto dal: May 2005
Messaggi: 340
Perchè devi emttere una "VAR IM" se vuoi utilizzare la stessa variabile.
Se è nella stessa funzione non serve.. ma se la utilizzi fuori dalla funzione devi dichiararla prima come var im e poi puoi usare il $this->im o $<nomeclasse>-im


max246 è offline   Rispondi citando il messaggio o parte di esso
Old 10-07-2006, 16:46   #3
ianaz
Senior Member
 
L'Avatar di ianaz
 
Iscritto dal: Jan 2005
Città: London, United Kingdom
Messaggi: 959
Quindi basta che metto semplicemente un var $im sopra?
__________________
zattix
ianaz è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2006, 06:50   #4
ianaz
Senior Member
 
L'Avatar di ianaz
 
Iscritto dal: Jan 2005
Città: London, United Kingdom
Messaggi: 959
Pure mettendo il
var $im;
non funziona.... help
__________________
zattix
ianaz è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2006, 08:21   #5
max246
Senior Member
 
Iscritto dal: May 2005
Messaggi: 340
Codice PHP:
<?php
    
class img
    
{
        var 
$errore = array(
                                
"Errore sconosciuto"// 0
                                
"Errore nel caricamento dell immagine" // 1
                        
);
        var 
$im "";
        function 
loadImg($img_percorso$testo)
        {
            
$im imagecreatefromjpeg($img_percorso);    
            
$this->insertLogo($im"logo.png");
            
$this->insertTesto($testo);
            
$this->saveImg();
            return 
1;
        }
        
        function 
insertLogo($im$logoz="logo.png")
        {
            
$watermark imagecreatefrompng($logoz);
            
$waterm_w  imagesx($watermark);
            
$waterm_h  imagesy($watermark);
            
imagecopymerge($im$watermark0000$waterm_w$waterm_h100);
        }
        
        function 
insertTesto($testo)
        {
        
            
$colore['bianco']    = imagecolorallocate($im255255255);
            
$colore['blu']        = imagecolorallocate($im00255);
            
$colore['rosso']    = imagecolorallocate($im25500);
            
$colore['verde']    = imagecolorallocate($im02550);
            
$colore['nero']        = imagecolorallocate($im000);
            
$width              imagesx($this->im);
            
$height             imagesy($this->im);
            
$testo                 "www.ianaz.ch";
            
$lung_testo         strlen($testo);
            
imagestring($this->im5$width/2-$lung_testo*5$height-20$testo$colore['bianco']);
        }
        function 
saveImg()
        {
            
imagepng($this->im"lol.png");
        }
    }
    
$img = new img;
?>
max246 è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2006, 08:31   #6
ianaz
Senior Member
 
L'Avatar di ianaz
 
Iscritto dal: Jan 2005
Città: London, United Kingdom
Messaggi: 959
Warning: imagecolorallocate(): supplied argument is not a valid Image resource in c:\programmi\easyphp1-8\www\img.class.php on line 29

ora mi da questo errore...praticamente non la vede come immagine
__________________
zattix

Ultima modifica di ianaz : 11-07-2006 alle 08:34.
ianaz è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2006, 08:46   #7
max246
Senior Member
 
Iscritto dal: May 2005
Messaggi: 340
Codice PHP:
<?php
    
class img
    
{
        var 
$errore = array(
                                
"Errore sconosciuto"// 0
                                
"Errore nel caricamento dell immagine" // 1
                        
);
        var 
$im "";
        function 
loadImg($img_percorso$testo)
        {
            
$im imagecreatefromjpeg($img_percorso);    
            
$this->insertLogo($im"logo.png");
            
$this->insertTesto($testo);
            
$this->saveImg();
            return 
1;
        }
        
        function 
insertLogo($im$logoz="logo.png")
        {
            
$watermark imagecreatefrompng($logoz);
            
$waterm_w  imagesx($watermark);
            
$waterm_h  imagesy($watermark);
            
imagecopymerge($im$watermark0000$waterm_w$waterm_h100);
        }
        
        function 
insertTesto($testo)
        {
        
            
$colore['bianco']    = imagecolorallocate($this->im255255255);
            
$colore['blu']        = imagecolorallocate($this->im00255);
            
$colore['rosso']    = imagecolorallocate($this->im25500);
            
$colore['verde']    = imagecolorallocate($this->im02550);
            
$colore['nero']        = imagecolorallocate($this->im000);
            
$width              imagesx($this->im);
            
$height             imagesy($this->im);
            
$testo                 "www.ianaz.ch";
            
$lung_testo         strlen($testo);
            
imagestring($this->im5$width/2-$lung_testo*5$height-20$testo$colore['bianco']);
        }
        function 
saveImg()
        {
            
imagepng($this->im"lol.png");
        }
    }
    
$img = new img;
?>
max246 è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2006, 08:55   #8
ianaz
Senior Member
 
L'Avatar di ianaz
 
Iscritto dal: Jan 2005
Città: London, United Kingdom
Messaggi: 959
ehm....e cosa cambia?

Il codice attuale é (tolto l'inserimento del testo che é inutile):

Codice PHP:
<?php
    
class img 
    

        var 
$errore = array( 
                                
"Errore sconosciuto"// 0 
                                
"Errore nel caricamento dell immagine" // 1 
                        
); 
        var 
$im
        function 
loadImg($img_percorso$testo$posizione_x$posizione_y
        { 
            
$im     imagecreatefromjpeg($img_percorso); 
            
$im_w   imagesx($im); 
            
$im_h   imagesy($im); 
            
$this->insertLogo($im"logo.png"); 
            
//$wt_x     = $this->calc_pos_x($posizione_x);
            //$wt_y     = $this->calc_pos_y($posizione_y);
            
$this->saveImg(); 
            return 
1
        } 
         
        function 
insertLogo($im$logoz="logo.png"
        { 
            
$watermark imagecreatefrompng($logoz); 
            
$waterm_w  imagesx($watermark); 
            
$waterm_h  imagesy($watermark); 
            
imagecopymerge($im$watermark0000$waterm_w$waterm_h100); 
        } 
        
        
/*    
        function calc_pos_x($position_x='LEFT')
        {
            switch($position_x)
            {
                case 'LEFT':
                    $x = 0;
                    break;
                case 'CENTER':
                    $x = $this->im_w / 2 - $this->waterm_w;
                    break;
                case 'RIGHT':
                    $x = $this->im_w - $this->waterm_w;
                    break;
                default:
                    $x = 0;
            
            } 
            return $x;
        
        }
        
        function calc_pos_y($position_y='TOP')
        {
            switch($position_y)
            {
                case 'TOP':
                    $y = 0;
                    break;
                case 'MIDDLE':
                    $y = $this->im_h / 2 - $this->waterm_h;
                    break;
                case 'BOTTOM':
                    $y = $this->im_h - $this->waterm_h;
                    break;
                default:
                    $y = 0;
            
            }
            return $y;
        
        }
        */
        
        
function saveImg()
        {
            
imagepng($this->im"lol.png"); 
        }
    } 
    
$img = new img
?>

Quindi ora l'errore me lo da solamente alla creazione dell'immagine
Codice PHP:
imagepng($this->im"lol.png"); 
che dice is not a valid Image resource
__________________
zattix

Ultima modifica di ianaz : 11-07-2006 alle 09:00.
ianaz è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2006, 09:03   #9
max246
Senior Member
 
Iscritto dal: May 2005
Messaggi: 340
ti potei picchiare

$im = imagecreatefromjpeg($img_percorso);

$im è una variabile locale non $this->im ....
max246 è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2006, 09:09   #10
ianaz
Senior Member
 
L'Avatar di ianaz
 
Iscritto dal: Jan 2005
Città: London, United Kingdom
Messaggi: 959
Quote:
Originariamente inviato da max246
ti potei picchiare

$im = imagecreatefromjpeg($img_percorso);

$im è una variabile locale non $this->im ....
e infatti io ^come ho fatto? -.-

$im = imagecreatefromjpeg($img_percorso);
__________________
zattix
ianaz è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2006, 09:29   #11
max246
Senior Member
 
Iscritto dal: May 2005
Messaggi: 340
ora ti picchio veramente tanto sei a 2 km di distanza vengo li....


$im è una variabile che tiene solo nella funziona non nella classe, se metti $this->im la inserisci nella variabile dichiarata nella classe

DEVI METTERE $this->im non $im
max246 è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2006, 09:36   #12
ianaz
Senior Member
 
L'Avatar di ianaz
 
Iscritto dal: Jan 2005
Città: London, United Kingdom
Messaggi: 959
Quote:
Originariamente inviato da max246
ora ti picchio veramente tanto sei a 2 km di distanza vengo li....


$im è una variabile che tiene solo nella funziona non nella classe, se metti $this->im la inserisci nella variabile dichiarata nella classe

DEVI METTERE $this->im non $im
uahhahhah cucciolooooo
tu intendi fare:
Codice PHP:
function loadImg($img_percorso$posizione_x$posizione_y
        { 
            
$this->im     imagecreatefromjpeg($img_percorso); 
            
$im_w   imagesx($im); 
            
$im_h   imagesy($im); 
            
$this->insertLogo($im"logo.png"); 
            
$wt_x     $this->calc_pos_x($posizione_x);
            
$wt_y     $this->calc_pos_y($posizione_y);
            
$this->saveImg(); 
            return 
1
        } 
giusto?

e guarda gli errori che mi da dopo:

Codice:
Notice: Undefined variable: im in c:\programmi\easyphp1-8\www\img.class.php on line 12

Warning: imagesx(): supplied argument is not a valid Image resource in c:\programmi\easyphp1-8\www\img.class.php on line 12

Notice: Undefined variable: im in c:\programmi\easyphp1-8\www\img.class.php on line 13

Warning: imagesy(): supplied argument is not a valid Image resource in c:\programmi\easyphp1-8\www\img.class.php on line 13

Notice: Undefined variable: im in c:\programmi\easyphp1-8\www\img.class.php on line 14

Warning: imagecopymerge(): supplied argument is not a valid Image resource in c:\programmi\easyphp1-8\www\img.class.php on line 26

é nella funzione loadImg() che creo la variabile $im e quindi devo utilizzarla come $im al suo interno no?!



LOL
__________________
zattix
ianaz è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2006, 09:51   #13
max246
Senior Member
 
Iscritto dal: May 2005
Messaggi: 340
Codice PHP:
<?php
    
class img
    
{
        var 
$errore = array(
                                
"Errore sconosciuto"// 0
                                
"Errore nel caricamento dell immagine" // 1
                        
);
        var 
$im;

        function 
loadImg($img_percorso$testo)
        {
            
$this->im imagecreatefromjpeg($img_percorso);    
            
$this->insertLogo($this->im"logo.png");
            
$this->insertTesto($testo);
            
$this->saveImg();
            return 
1;
        }
        
        function 
insertLogo($im$logoz="logo.png")
        {
            
$watermark imagecreatefrompng($logoz);
            
$waterm_w  imagesx($watermark);
            
$waterm_h  imagesy($watermark);
            
imagecopymerge($im$watermark0000$waterm_w$waterm_h100);
        }
        
        function 
insertTesto($testo)
        {
        
            
$colore['bianco']    = imagecolorallocate($this->im255255255);
            
$colore['blu']        = imagecolorallocate($this->im00255);
            
$colore['rosso']    = imagecolorallocate($this->im25500);
            
$colore['verde']    = imagecolorallocate($this->im02550);
            
$colore['nero']        = imagecolorallocate($this->im000);
            
$width              imagesx($this->im);
            
$height             imagesy($this->im);
            
$testo                 "www.ianaz.ch";
            
$lung_testo         strlen($testo);
            
imagestring($this->im5$width/2-$lung_testo*5$height-20$testo$colore['bianco']);
        }
        function 
saveImg()
        {
            
imagepng($this->im"lol.png");
        }
    }
    
$img = new img;
?>

e se non funziona cosi ti uccidi...
max246 è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2006, 09:53   #14
ianaz
Senior Member
 
L'Avatar di ianaz
 
Iscritto dal: Jan 2005
Città: London, United Kingdom
Messaggi: 959
Ok, grazie mille

quindi nel nuovo ora é così:

Codice PHP:
function loadImg($img_percorso$posizione_x$posizione_y
        { 
            
$this->im     imagecreatefromjpeg($img_percorso); 
            
$im_w       imagesx($this->im); 
            
$im_h       imagesy($this->im); 
            
$this->insertLogo($this->im"logo.png"); 
            
$wt_x         $this->calc_pos_x($posizione_x);
            
$wt_y         $this->calc_pos_y($posizione_y);
            
$this->saveImg(); 
            return 
1
        } 
ma non sapevo che bisognava mettere $this->im anche all'interno dove si crea...come mai?
Perché l'ho dichiarata sopra con il var?
__________________
zattix

Ultima modifica di ianaz : 11-07-2006 alle 09:56.
ianaz è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2006, 09:55   #15
max246
Senior Member
 
Iscritto dal: May 2005
Messaggi: 340
$im con $this->im ( sta diventando una chat di msn questo topic...)
max246 è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2006, 09:56   #16
ianaz
Senior Member
 
L'Avatar di ianaz
 
Iscritto dal: Jan 2005
Città: London, United Kingdom
Messaggi: 959
e ma lol, se entro in msn mi uccidono
__________________
zattix
ianaz è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2006, 10:02   #17
ianaz
Senior Member
 
L'Avatar di ianaz
 
Iscritto dal: Jan 2005
Città: London, United Kingdom
Messaggi: 959
il var $im; si poteva anche tralasciare se non sbaglio no?!
__________________
zattix
ianaz è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2006, 10:14   #18
ianaz
Senior Member
 
L'Avatar di ianaz
 
Iscritto dal: Jan 2005
Città: London, United Kingdom
Messaggi: 959
Ok così é perfettamente funzionante:

Codice PHP:
<?php
    
class img 
    

        var 
$errore = array( 
                                
"Errore sconosciuto"// 0 
                                
"Errore nel caricamento dell immagine" // 1 
                        
); 
        var 
$im
        function 
loadImg($img_percorso$posizione_x$posizione_y
        { 
            
$this->im             imagecreatefromjpeg($img_percorso); 
            
$this->im_w           imagesx($this->im); 
            
$this->im_h           imagesy($this->im); 
            
$this->logoProperties("logo.png"); 
            
$this->wt_x         $this->calc_pos_x($posizione_x);
            
$this->wt_y         $this->calc_pos_y($posizione_y);
            
imagecopymerge($this->im$this->watermark$this->wt_x$this->wt_y00$this->waterm_w$this->waterm_h100);
            
$this->saveImg(); 
            return 
1
        } 
         
        function 
logoProperties($logoz="logo.png"
        { 
            
$this->watermark imagecreatefrompng($logoz); 
            
$this->waterm_w  imagesx($this->watermark); 
            
$this->waterm_h  imagesy($this->watermark);  
        } 
        
        
        function 
calc_pos_x($position_x='LEFT')
        {
            switch(
$position_x)
            {
                case 
'LEFT':
                    
$x 0;
                    break;
                case 
'CENTER':
                    
$x $this->im_w $this->waterm_w 2;
                    break;
                case 
'RIGHT':
                    
$x $this->im_w $this->waterm_w;
                    break;
                default:
                    
$x 0;
            
            } 
            return 
$x;
        
        }
        
        function 
calc_pos_y($position_y='TOP')
        {
            switch(
$position_y)
            {
                case 
'TOP':
                    
$y 0;
                    break;
                case 
'MIDDLE':
                    
$y $this->im_h $this->waterm_h 2;
                    break;
                case 
'BOTTOM':
                    
$y $this->im_h $this->waterm_h;
                    break;
                default:
                    
$y 0;
            
            }
            return 
$y;
        
        }
        
        function 
saveImg()
        {
            
imagepng($this->im"lol.png"); 
        }
    } 
    
$img = new img
    
?>



grazie
__________________
zattix
ianaz è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2006, 12:31   #19
max246
Senior Member
 
Iscritto dal: May 2005
Messaggi: 340
non andava bene quello che ti avevo fatto io?
max246 è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2006, 12:54   #20
ianaz
Senior Member
 
L'Avatar di ianaz
 
Iscritto dal: Jan 2005
Città: London, United Kingdom
Messaggi: 959
Quote:
Originariamente inviato da max246
non andava bene quello che ti avevo fatto io?
???
si...bigolo
__________________
zattix
ianaz è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine NL-LC1 è il primo dissipatore a liquido A...
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con ...
NASA e Relativity Space uniscono le forz...
watchOS 27 non arriverà su modell...
Apple, definiti i piani per i chip futur...
Ancora tagli nel futuro di XBOX: il caso...
Samsung Galaxy S27, il compatto potrebbe...
Sempre più IA nei videogiochi: con PUBG ...
La NASA avrebbe fermato i lavori sul mod...
Mancano pochi giorni al lancio della mis...
Prime Day in anticipo, giorno 7: tempo d...
Lo smartphone HONOR con batteria da 11.0...
Amazfit Bip 5, Active 3 Premium e Balanc...
Xiaomi potrebbe portare i suoi Pro e Pro...
Crisi delle memorie: CMF annulla il pros...
La PS6 si farà attendere: il lanc...
OnePlus non sente la crisi delle memorie...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 04:29.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v