Yii Framework Forum: [Risolto][Yii 1] Immagini Auto-Ridimensionate - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

[Risolto][Yii 1] Immagini Auto-Ridimensionate Metodo per ridimensionare immagini mantenendo le proporzioni Rate Topic: -----

#1 User is offline   techsoft 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 25
  • Joined: 05-May 14

Posted 11 June 2014 - 03:45 AM

Salve,
chiedo il vostro aiuto per un problema che non riesco a risolvere; ho creato un sito web per l'amministrazione di locazioni(un sito per un'immobiliare), mi sono però bloccato sul ridimensionamento delle immagini, ora le stampo ridimensionandole in automatico come segue:

echo CHtml::image(Yii::app()->createUrl('img/displaySavedImage', 
  array('id' => $newLoc[$m]['img_id'])), 'alt', array( 'height'=>'95px', 'width'=>'115px'));


In questo modo le immagini vengono ridimensionate automaticamente, tuttavia le proporzioni sono sballate.. ho trovato un sistema(Verot) che mi permette di ridimensionare le immagini e mantenere le proporzioni inserendo degli spazi vuoti, siccome ho già creato il sistema di upload e stampa immagini non ho voglia di rifare tutto quindi non so come usare questa classe.

Arriviamo al dunque, come faccio a ridimensionare un immagine, passandogli altezza e larghezza, mantenendo le proporzioni, inserendo degli spazi vuoti ai lati?
Posso usare un'alternativa alla funzione
image_ratio_fill=true
di verot, oppure come posso integrarla in un sistema di upload già fatto?


Grazie mille a chi saprà aiutarmi!!
0

#2 User is offline   ettolo 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 44
  • Joined: 06-September 12

Posted 11 June 2014 - 04:40 AM

View Posttechsoft, on 11 June 2014 - 03:45 AM, said:

Arriviamo al dunque, come faccio a ridimensionare un immagine, passandogli altezza e larghezza, mantenendo le proporzioni, inserendo degli spazi vuoti ai lati?
Posso usare un'alternativa alla funzione
image_ratio_fill=true
di verot, oppure come posso integrarla in un sistema di upload già fatto?


Grazie mille a chi saprà aiutarmi!!


ciao,
seguendo il tuo link e guardando gli esempi pare che quello che ti serve sia:
$foo->image_resize = true;
$foo->image_ratio_fill = true;
$foo->image_y = 50;
$foo->image_x = 150;


Personalmente ho usato in altro progetto (ma non con yii) questa classe
http://www.abeautifu...-class-for-php/

Ciao!
0

#3 User is offline   techsoft 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 25
  • Joined: 05-May 14

Posted 11 June 2014 - 06:04 AM

View Postettolo, on 11 June 2014 - 04:40 AM, said:

ciao,
seguendo il tuo link e guardando gli esempi pare che quello che ti serve sia:
$foo->image_resize = true;
$foo->image_ratio_fill = true;
$foo->image_y = 50;
$foo->image_x = 150;


Personalmente ho usato in altro progetto (ma non con yii) questa classe
http://www.abeautifu...-class-for-php/

Ciao!


Ok, fino a li c'ero arrivato, il problema é che non so come integrarlo nel mio codice..
Adesso ho provato a modificare il codice così

Yii::import('application.extensions.upload.upload');

$prova= CHtml::image(Yii::app()->createUrl('img/displaySavedImage', array('id' => $oCDbDataReader[0]['img_id'])));
                $prova->image_resize = true;
                $prova->image_ratio_fill = true;
                $prova->image_y = 50;
                $prova->image_x = 150;
echo $prova;


ma, giustamente, mi da questo errore:

Quote

Attempt to assign property of non-object

0

#4 User is offline   ettolo 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 44
  • Joined: 06-September 12

Posted 11 June 2014 - 08:14 AM

View Posttechsoft, on 11 June 2014 - 06:04 AM, said:

Ok, fino a li c'ero arrivato, il problema é che non so come integrarlo nel mio codice..

beh scusa se ho provato ad aiutarti :blink:
ci riprovo...
credo che tu sbagli il modo di richiamare l'oggetto immagine.

guarda qui... nel caso tu non ci fossi arrivato da solo! ;D

http://www.yiiframew...0-upload-verot/
0

#5 User is offline   techsoft 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 25
  • Joined: 05-May 14

Posted 11 June 2014 - 08:38 AM

View Postettolo, on 11 June 2014 - 08:14 AM, said:

beh scusa se ho provato ad aiutarti :blink:
ci riprovo...
credo che tu sbagli il modo di richiamare l'oggetto immagine.

guarda qui... nel caso tu non ci fossi arrivato da solo! ;D

http://www.yiiframew...0-upload-verot/


Scusa, non era era mia intenzione essere scortese..
Ho provato a seguire la guida che mi hai citato, nulla di fatto; non riesco a stampare l'immagine, hai qualche esempio o qualche dritta da mostrarmi?

questo il mio codice:

$prova= CHtml::image(Yii::app()->createUrl('img/displaySavedImage', array('id' => $oCDbDataReader[0]['img_id'])));
                $upload = new upload($prova);
                $upload->image_resize = true;
                $upload->image_ratio_fill = true;
                $upload->image_y = 50;
                $upload->image_x = 150;
                $upload->file_is_image;
                $upload->file_dst_pathname;
                header('Content-type: ' . $upload->file_src_mime);
                echo $upload->Process();
                die();

0

#6 User is offline   ettolo 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 44
  • Joined: 06-September 12

Posted 11 June 2014 - 09:09 AM

$prova= CHtml::image(Yii::app()->createUrl('img/displaySavedImage', array('id' => $oCDbDataReader[0]['img_id'])));


questo è sbagliato, genera un tag html img e mostra l'immagine.
La tua cluasse upload vuole solo il percorso

Devi fare una cosa tipo:

 
$prova= "/cartellaImmagini/nomeImmagine.jpg";

$upload = new upload($prova);
$upload->image_resize = true;
$upload->image_ratio_fill = true;
$upload->image_y = 50;
$upload->image_x = 150;
$upload->file_is_image;
$upload->file_dst_pathname;
$upload->process("/cartellaImmagini/ridimensionata.jpg"); // questo salva l'immagine 

poi visualizzi l'immagine "ridimensionata.jpg" dove vuoi.

Tutto questo se vuoi fare il ridimensionamento al momento dell'upload dell'immagine.
Se vuoi farlo "real time" al momento della visualizzazione ti conviene usare l'altra classe che ti ho indicato (o una equivalente) e lasciare l'upload come l'hai fatto se funziona.
1

#7 User is offline   techsoft 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 25
  • Joined: 05-May 14

Posted 12 June 2014 - 02:53 AM

View Postettolo, on 11 June 2014 - 09:09 AM, said:

Tutto questo se vuoi fare il ridimensionamento al momento dell'upload dell'immagine.
Se vuoi farlo "real time" al momento della visualizzazione ti conviene usare l'altra classe che ti ho indicato (o una equivalente) e lasciare l'upload come l'hai fatto se funziona.


Ok grazie, ho provato ad utilizzare la tua classe. Ho scaricato la classe e inserita nelle estensioni, dopodiche ho configurato il main nel seguente modo:
'import' => array(
        'application.models.*',
        'application.components.*',
        'application.extensions.abeautifulsite.SimpleImage',
    ),


ho poi inserito il codice nella view:
$prova= Yii::app()->createUrl('img/displaySavedImage', array('id' => $oCDbDataReader[0]['img_id']));
$img = new SimpleImage($prova);
$img->best_fit(555, 300);
echo CHtml::image($img);


eppure mi da ancora un errore, non riesco a capire per quale motivo..

Quote

Fatal error: Class 'SimpleImage' not found in C:\xampp\htdocs\techsoft\mpamm\protected\views\site\index.php on line 73


Grazie mille per il tuo aiuto!
0

#8 User is offline   Lerstat1968 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 28
  • Joined: 23-October 13

Posted 12 June 2014 - 04:01 AM

View Posttechsoft, on 12 June 2014 - 02:53 AM, said:


'import' => array(
        'application.models.*',
        'application.components.*',
        'application.extensions.abeautifulsite.SimpleImage',
    ),




se la libreria si trova in 'extensions.abeautifulsite.SimpleImage', prova a inserire in 'import':

         'ext.abeautifulsite.SimpleImage.*',

0

#9 User is offline   techsoft 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 25
  • Joined: 05-May 14

Posted 12 June 2014 - 04:24 AM

View PostLerstat1968, on 12 June 2014 - 04:01 AM, said:

se la libreria si trova in 'extensions.abeautifulsite.SimpleImage', prova a inserire in 'import':

         'ext.abeautifulsite.SimpleImage.*',



Grazie, ho provato ma mi da errore.
Comunque il file che contiene la classe é SimpleImage.php quindi non credo sia corretto aggiungere * ..in ogni caso grazie
0

#10 User is offline   ettolo 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 44
  • Joined: 06-September 12

Posted 12 June 2014 - 04:58 AM

Puoi scrivere il percorso esatto in cui si trova la classe simpleimage?
0

#11 User is offline   Lerstat1968 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 28
  • Joined: 23-October 13

Posted 12 June 2014 - 05:07 AM

Dai un'occhiata a:

http://www.yiiframew...ion.integration
http://stackoverflow...-library-in-yii
http://www.yiiframew...from-3rd-party/
0

#12 User is offline   techsoft 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 25
  • Joined: 05-May 14

Posted 12 June 2014 - 05:50 AM

View Postettolo, on 12 June 2014 - 04:58 AM, said:

Puoi scrivere il percorso esatto in cui si trova la classe simpleimage?


-application
->protected
-->extensions
--->abeautifulsite
---->SimpleImage.php
0

#13 User is offline   Lerstat1968 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 28
  • Joined: 23-October 13

Posted 12 June 2014 - 06:10 AM

prova con 'ext.abeautifulsite.*' allora... dovrebbe funzionare.

credevo che si trovasse in protected/extensions/abeautifulsite/SimpleImage/SimpleImage.php
0

#14 User is offline   Lerstat1968 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 28
  • Joined: 23-October 13

Posted 12 June 2014 - 06:23 AM

hai detto che hai come errore

Fatal error: Class 'SimpleImage' not found in C:\xampp\htdocs\techsoft\mpamm\protected\views\site\index.php on line 73


significa che l'autoloader di Yii non riesce a caricare la classe SimpleImage...

a questo punto, visto che la classe è compusta da un solo file, sposterei il file SimpleImage.php nella cartella components e toglierei il riferimento alla cartella abeautifulsite dagli import.

L'autoloader di Yii dovrebbe fare il resto.

Se non funziona fai un ble require_once del file.

Se anche così non funziona dai un'occhiata al link (http://www.yiiframew...from-3rd-party/) che ti avevo suggerito prima.

mi raccomando all'interno della cartella components senza sotto cartelle.
1

#15 User is offline   techsoft 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 25
  • Joined: 05-May 14

Posted 12 June 2014 - 07:39 AM

Ok, ho finalmente risolto, grazie a voi!
Alla fine ho dovuto modificare anche il file SimpleImage.php togliendo
namespace abeautifulsite;
use Exception;


Grazie mille per l'aiuto!!
0

#16 User is offline   Lerstat1968 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 28
  • Joined: 23-October 13

Posted 12 June 2014 - 08:01 AM

Mi dispiace, non avevo visto la libreria usava i namespace....

in questo caso si poteva risolvere anche così...

http://shiki.me/blog...-yii-framework/
0

#17 User is offline   techsoft 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 25
  • Joined: 05-May 14

Posted 12 June 2014 - 08:05 AM

View PostLerstat1968, on 12 June 2014 - 08:01 AM, said:

Mi dispiace, non avevo visto la libreria usava i namespace....

in questo caso si poteva risolvere anche così...

http://shiki.me/blog...-yii-framework/


Infatti non ci avevo fatto caso nemmeno io, sono entrato per sbaglio..
0

#18 User is offline   ettolo 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 44
  • Joined: 06-September 12

Posted 12 June 2014 - 10:35 AM

View Posttechsoft, on 12 June 2014 - 07:39 AM, said:

Ok, ho finalmente risolto, grazie a voi!
Alla fine ho dovuto modificare anche il file SimpleImage.php togliendo
namespace abeautifulsite;
use Exception;


Grazie mille per l'aiuto!!


ottimo!
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users