Pagina 1 di 2

Ridimensionamento immagini

Inviato: 23/01/2004, 0:52
da marcus
BLUE DOG HA DETTO: le immagini in miniatura rispondono ad un ridimensionamento (virtuale) predefinito...
Cosa intendi per virtuale? forse che e' demandato al browser col tag IMG?
dando un'occhiata al codice php mi sembra che le thumb vengano create sul server al volo ...oh sbaglio?!

Penso sia un argomento che meriti una risposta ...specialmente per i NIUBBI e qui siamo in tanti. Grazie ...

Marcus

Inviato: 23/01/2004, 3:36
da hozone
da dove arriva questa risposta?
mi sa che hai sbagliato a premere "newtopic" invece che "posttopic"

Inviato: 23/01/2004, 5:20
da marcus
hozone ha scritto:da dove arriva questa risposta?
mi sa che hai sbagliato a premere "newtopic" invece che "posttopic"
Non ho sbagliato niente, ho semplicemente quotato una vecchia affermazione di Bludog e l'ho inserita in un nuovo Topic.

L'argomento e' interessante in quanto la pesantezza delle immagini puo' incidere significativamente sul caricamento delle pagine.

So che esistono contrib per il resize ma non ho chiaro se questo viene effettuato da OSC al volo o e demandato al tag IMG.
In quest'ultimo caso l'installazione della contrib mi sembra consigliabile.

Lo so che il tempo e' denaro e la questione puo' sembrare troppo teorica ma un chiarimento per i NIUBBI sarebbe ...veramente appprezzato!

Grazie
Saluti Marcus

Inviato: 23/01/2004, 14:58
da hozone
ok.
io ti dico quello che so.
anche io avevo questo dubbio, so che ci sono contrib che all'inserimento di una immagine ne ricreano un'altra più piccola.
io personalmente inserisco immagini di media dimensione, e agisco editanto la funzione (ora non ricordo il nome) che stampa i tag

Codice: Seleziona tutto

<img>
in modo che le immagini non vengano "storpiate".

Inviato: 23/01/2004, 19:15
da marcus
hozone ha scritto:ok.
io ti dico quello che so.
anche io avevo questo dubbio, so che ci sono contrib che all'inserimento di una immagine ne ricreano un'altra più piccola.
io personalmente inserisco immagini di media dimensione, e agisco editanto la funzione (ora non ricordo il nome) che stampa i tag

Codice: Seleziona tutto

<img>
in modo che le immagini non vengano "storpiate".
Grazie Hozone, voglio provare qualche contrib x il resize, poi posto qui le mie impressioni!

Ciao
Marcus

Inviato: 24/01/2004, 19:53
da hozone
benissimo!
sarebbe bello se tu riuscissi a scrivere un bel post sui tuoi test.. e su come hai installato le varie contrib testate :)

Re: Ridimensionamento immagini

Inviato: 25/01/2004, 16:54
da BluEdoG
marcus ha scritto:
BLUE DOG HA DETTO: le immagini in miniatura rispondono ad un ridimensionamento (virtuale) predefinito...
Cosa intendi per virtuale?
Speravo fosse chiaro... :wink: allora dobbiamo partire da un po' piu' indietro da una oscommerce liscia. Dalla scheda prodotto carichiamo una immagine (esempio una immagine da 1280 x 1024 pixel), quando andiamo nella parte cliente vediamo l'immagine molto piu' piccola 80x60 pixel circa. In realtà l'immagine è virtualmente di quelle dimensioni, se facciamo una prova pratica, possiamo fare sulla miniatura tasto dx->proprietà e vedere il peso in kilobyte, poi apriamo la pop-up in cui mostra l'immagine grande e riguardiamo i kilobyte. Vedremo che il "peso" della immagine è sempre lo stesso. In parole povere la miniatura è forzata a quelle dimensioni, ovvero carica l'immagine come se la vedessimo a 1280x1024! Qualcuno dira' embe'? l'effetto indesiderato è che con un paio d'immagini cosi' la pagina si carica un minuto anziche' un secondo.
La soluzione: esistono per il php delle librerie aggiuntive (dalla versione del php 4.3.x sono integrate allo stesso) chiamate librerie grafice GD che permettono di creare delle miniature reali, cioè l'immagine realmente sarà di 80x60 con peso ultraridotto, che servono a salvare il sito dalla gogna del caricamento.
A completezza del discorso bisogna dire che le librerie GD non sono le uniche, esistono anche altri sistemi simili, questo pero' fa sorgere il problema per chi ha l'hosting, infatti si tratta di un'opzione che deve essere predisposta dal fornitore altrimenti ciccia.
Secondo problema: ovviamente non basta avere la libreria, ma tocca dare comandi specifici e cambiare sostanzialmente l'impianto "di pescaggio" delle immagini (infatti con le miniature le immagini sono due e non una, ovvero devo riuscire a leggere la miniatura e nella pop-up l'immagine reale). Nella repository di Oscommerce contrib ce ne sono un paio che sfruttano appunto le librerie gd, addirittura sono in grado, se l'immagine è troppo sballata per rientrare in multipli di 80x60 (al fine di avere un buon lavoro sarebbe necessario indicare immagini che siano multipli, o che si avvicinino, di 80x60), per esempio carichiamo una immagine di 500x1024 risulterebbe "stirata". Orquindi ci sono funzioni che evitano lo stiramento accollandogli intorno all'immagine un background attraverso una procedura complessa che non saprei neanche come spiegare.
Infine come sapere se il proprio server ha le librerie GD installate? usate questo codice da salvare come pagina php

Codice: Seleziona tutto

<?php
$code = 'function gd_info() {
        $array = Array(
                       "GD Version" => "",
                       "FreeType Support" => 0,
                       "FreeType Support" => 0,
                       "FreeType Linkage" => "",
                       "T1Lib Support" => 0,
                       "GIF Read Support" => 0,
                       "GIF Create Support" => 0,
                       "JPG Support" => 0,
                       "PNG Support" => 0,
                       "WBMP Support" => 0,
                       "XBM Support" => 0
                      );
        $gif_support = 0;

        ob_start();
        eval("phpinfo();");
        $info = ob_get_contents();
        ob_end_clean();
      
        foreach(explode("\n", $info) as $line) {
            if(strpos($line, "GD Version")!==false)
                $array["GD Version"] = trim(str_replace("GD Version", "", strip_tags($line)));
            if(strpos($line, "FreeType Support")!==false)
                $array["FreeType Support"] = trim(str_replace("FreeType Support", "", strip_tags($line)));
            if(strpos($line, "FreeType Linkage")!==false)
                $array["FreeType Linkage"] = trim(str_replace("FreeType Linkage", "", strip_tags($line)));
            if(strpos($line, "T1Lib Support")!==false)
                $array["T1Lib Support"] = trim(str_replace("T1Lib Support", "", strip_tags($line)));
            if(strpos($line, "GIF Read Support")!==false)
                $array["GIF Read Support"] = trim(str_replace("GIF Read Support", "", strip_tags($line)));
            if(strpos($line, "GIF Create Support")!==false)
                $array["GIF Create Support"] = trim(str_replace("GIF Create Support", "", strip_tags($line)));
            if(strpos($line, "GIF Support")!==false)
                $gif_support = trim(str_replace("GIF Support", "", strip_tags($line)));
            if(strpos($line, "JPG Support")!==false)
                $array["JPG Support"] = trim(str_replace("JPG Support", "", strip_tags($line)));
            if(strpos($line, "PNG Support")!==false)
                $array["PNG Support"] = trim(str_replace("PNG Support", "", strip_tags($line)));
            if(strpos($line, "WBMP Support")!==false)
                $array["WBMP Support"] = trim(str_replace("WBMP Support", "", strip_tags($line)));
            if(strpos($line, "XBM Support")!==false)
                $array["XBM Support"] = trim(str_replace("XBM Support", "", strip_tags($line)));
        }
        
        if($gif_support==="enabled") {
            $array["GIF Read Support"]   = 1;
            $array["GIF Create Support"] = 1;
        }

        if($array["FreeType Support"]==="enabled"){
            $array["FreeType Support"] = 1;    }
 
        if($array["T1Lib Support"]==="enabled")
            $array["T1Lib Support"] = 1;     
       
        if($array["GIF Read Support"]==="enabled"){
            $array["GIF Read Support"] = 1;    }
 
        if($array["GIF Create Support"]==="enabled")
            $array["GIF Create Support"] = 1;     

        if($array["JPG Support"]==="enabled")
            $array["JPG Support"] = 1;
            
        if($array["PNG Support"]==="enabled")
            $array["PNG Support"] = 1;
            
        if($array["WBMP Support"]==="enabled")
            $array["WBMP Support"] = 1;
            
        if($array["XBM Support"]==="enabled")
            $array["XBM Support"] = 1;
        
        return $array;
    }';

if(!function_exists("gd_info")) eval($code);
?> 

Inviato: 25/01/2004, 17:55
da hozone
grazie bluedog.
altra domandina: che contribution funzionano bene modificando poco codice osc?

Inviato: 25/01/2004, 18:32
da BluEdoG
francamente non te lo so dire, ho usato il sistema delle GD ma non con oscommerce. In locale avevo abozzato ancora con la MS1 qualche contrib, ma da allora ne sono uscite parecchie altre.

Altra nota, con le librerie GD, credo, ma non ne sono sicuro, che solo la versione php 4.3.4 supporti anche il formato .gif che da quest'anno è diventato di dominio pubblico, prima sarebbe stato soggetto a royalties e quindi le GD non erano "legalmente" supportate; mentre è possibile creare i timestamp ovvero una filigrana in alpha blending sopra l'immagine che si vede spesso in alcuni siti per tutelarne i diritti d'autore.

Re: Ridimensionamento immagini

Inviato: 26/01/2004, 19:57
da marcus
BluEdoG ha scritto:
marcus ha scritto:
BLUE DOG HA DETTO: le immagini in miniatura rispondono ad un ridimensionamento (virtuale) predefinito...
Cosa intendi per virtuale?
Speravo fosse chiaro... :wink:
Grazie anche da parte mia !

Adesso e' chiaro che il ridimensionamento - senza contrib - viene demandato al browser specificando gli attributi HEIGHT e WIDTH del tag IMG.

Una piccola nota: per avere tutte le info sulle GD installate e sul PHP basta inserire un piccolo file info.php con il seguente cod:

Codice: Seleziona tutto

<?php  phpinfo() ?>
e richiamarlo via browser: www.tousito.com/info.php :wink:

Ciao BlueDog

Inviato: 31/03/2004, 18:40
da tassoman
Si sa poi niente delle contrib?
A me vengono strechate le img... bella fregatura... mi sembra una funzione tra le più importanti e non è inserita di defautl!? 8O

:cry:

Inviato: 31/03/2004, 19:02
da BluEdoG
non è inserita per default perchè quando venne rilasciata la MS2 il php era intorno alla versione 4.2.x e solo dalla 4.3.3 in poi ci sono le librerie GD installate per default. Questo significa che chi ha le librerie installate puo' usare tale funzione, gli altri si attaccano. Ovviamente un sw come OSC deve pensare anche ai menomati.

Inviato: 31/03/2004, 21:49
da marcus
BluEdoG ha scritto:non è inserita per default perchè quando venne rilasciata la MS2 il php era intorno alla versione 4.2.x e solo dalla 4.3.3 in poi ci sono le librerie GD installate per default. Questo significa che chi ha le librerie installate puo' usare tale funzione, gli altri si attaccano. Ovviamente un sw come OSC deve pensare anche ai menomati.

Tranquilli ... fra poco sarà disponibile la mia contrib giusto per i non menomati :wink:

comunque ce ne sono una caterva già disponibili, certo che la mia sarà altra cosa :lol: no scherzo volevo dire che sarà... in beta test 8)

Marzullus

Inviato: 31/03/2004, 23:42
da tassoman
Mo te dico la mia: penso che una contrib utile, dovrebbe creare l'anteprima di X pixel a scelta. e creare la img grande di XXX pixels sempre a scelta, per la pagina dei dettagli, o popup.

Poi se vogliamo essere proprio degli sboroni, la possibilità di mettere la filigrana con un font true type, selezionandone colori e dimensioni e stringa... esempio:

©2004 OsCommerce Shop

Inviato: 01/04/2004, 5:27
da marcus
tassoman ha scritto:Mo te dico la mia: penso che una contrib utile, dovrebbe creare l'anteprima di X pixel a scelta. e creare la img grande di XXX pixels sempre a scelta, per la pagina dei dettagli, o popup.
questo lo ho già implementato :wink:

Da pannello di controllo sarà possibile settare le dimensioni per:
miniature, sheda ( dimensione intermedia ), dettaglio o popup.

Adesso sto lavorando al problema dei nomi dei file e dell'annullamento preview ( altro buggettino di osc la ciofeca! ) se si annulla l'inserimento del prodotto l'eventuale immagine uplodata rimane sul server !
tassoman ha scritto: Poi se vogliamo essere proprio degli sboroni, la possibilità di mettere la filigrana con un font true type, selezionandone colori e dimensioni e stringa... esempio:

©2004 OsCommerce Shop
questo è invero banale 8) ...onde per cui ti lascio il compito di farlo!

Saluti
Marzullus