• Home
  • Forum
  • Fare Web
  • Javascript

Ridimensionare le immagini

  • Creatore Discussione Creatore Discussione cavaliere123
  • Data di inizio Data di inizio 14 Ott 2012
  • Tag Tag
    javascript ridimensionare immagini
  • 1
  • 2
Succ.
1 di 2 Succ. Ultimo
C

cavaliere123

Utente Attivo
31 Lug 2012
416
0
16
  • 14 Ott 2012
  • #1
Buona sera anzi buona notte.... e ben ritrovati a tutti.
E prima del meritato riposo ho un aiuto da chiedervi gentilmente.

Ho uno script già abbondantemente visionato e corretto da voi per le immagini in una bacheca, con la particolarità che se si clicca su una immagine piccola, questa si ingrandisce e ciò avviene con la function :

HTML:
 function grande(img) {  
                var n = document.getElementsByTagName('img').length;           
                var elemento = document.getElementById(img);

                for(var i = 1; i <= n; i++) {
                    
                    if(img == "img" + i) {                        
                        elemento.style.width = 536 + "px";
                        elemento.style.height = 640 + "px";
                         document.getElementById("tex" + i).style.display="none";
                          document.getElementById("text" + i).style.display="block";
                              
     if(immagint[i]=="") { document.getElementById("immagaint"+i).style.display="none"; document.getElementById("textins" + i).style.display="none"; } else {  document.getElementById("immagaint"+i).style.display="block"; document.getElementById("textins" + i).style.display="block";}
                      } else {
                        document.getElementById("fot" + i).style.display="none";

                        }
                }        
       
            }

Ora lasciando perdere i vari display none e block veniamo alle dimensione dell'immagine da me prefissati...
Per certe immagini va benissimo quella dimensione ma per altre no... si modificano specialmente sul lato della lunghezza e vengono deformate.... Mi chiedevo se ci fosse un metodo che ponesse la dimensione width ben prefissata ma la lunghezza della foto dovrebbe in automatico essere proporzionata alla larghezza.... e quindi diversa da immagine a immagine.
Spero di essere stato chiaro e grazie in anticipo per le eventuali risposte.
Buona domenica a tutti
Con stima Domenico.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 14 Ott 2012
  • #2
Ciao.
imposta la dimensione in px solo al width
 
C

cavaliere123

Utente Attivo
31 Lug 2012
416
0
16
  • 14 Ott 2012
  • #3
Salve Criric, se faccio cosi si allunga solo orizzontalmente.... e quindi si deforma in modo inguardabile
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 14 Ott 2012
  • #4
ciao
in php saprei farlo, ma in js no.
non c'è in js una funzione che legga la w e una la h dell'immagine?
se si poi calcoli il rapporto e imposti la nuova w e h
 
C

cavaliere123

Utente Attivo
31 Lug 2012
416
0
16
  • 14 Ott 2012
  • #5
Ciao Borgo si che c'è.... sarebbe del tipo questa :

HTML:
        var larghezza = document.getElementById(img).width;

	var altezza = document.getElementById(img).height;

Dove img chiaramente è L'immagine considerata....
Io in teoria c'è l'ho la soluzione, cioè se a priori ho l'immagine grande quanto mi serve.. dovrei solo dire allo script falla comparire con la larghezza e altezza definita.... ma poi lo stesso problema l'avrei con la rispettiva più piccola e non vorrei caricare due immagini ogni volta con dimensioni diverse......
Non so se sono stato chiaro....
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 14 Ott 2012
  • #6
io intendevo cosi
Codice:
elemento.style.height = "auto";
ma non ho testato magari non funziona
 
C

cavaliere123

Utente Attivo
31 Lug 2012
416
0
16
  • 14 Ott 2012
  • #7
Allora il procedimento matematico è il seguente... ammettiamo che voglia diminuirlo del 40%

dato le dimensioni originarie con :

HTML:
 var larghezza = document.getElementById(img).width;

	var altezza = document.getElementById(img).height;

basterebbe fare :

HTML:
var nuovalarghezza = larghezza / 40*100

var nuovaaltezza = altezza / 40*100

Ma il risultato se esce con la virgola dovrebbe approssimarlo per eccesso sino al prossimo intero.
Come ragionamento è logico ??
 
C

cavaliere123

Utente Attivo
31 Lug 2012
416
0
16
  • 14 Ott 2012
  • #8
Adesso provo
 
C

cavaliere123

Utente Attivo
31 Lug 2012
416
0
16
  • 14 Ott 2012
  • #9
Wow funziona.... l'immagine è proporzionata

Adesso il problema per la piccola immagine... quella la imposto con il CSS e dico

HTML:
.dim ( width:90px;
         height:100px; )

Funziona se metto cosi ??

HTML:
.dim ( width:90px;
         height:"auto" )
 
C

cavaliere123

Utente Attivo
31 Lug 2012
416
0
16
  • 14 Ott 2012
  • #10
Siiiiiiii, funziona lo stesso.....

Ma solo per curiosità, il procedimento matematico da me imposto è proprio errato ??

Grazieeeeee davvero come sempre
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 15 Ott 2012
  • #11
ciao
per adattare un' immagine alla grandezza richiesta potresti fare così, anche se il tuo ragionamento fila

Codice:
//....
var larghezza = document.getElementById(img).width;
var altezza = document.getElementById(img).height;
var lar_rich = 120;
var alt_rch = 80;
var rap= min(lar_rich/larghezza, alt_rch/altezza);
var new_lar= round(larghezza*rap);
var new_alt= round(altezza*rap);
//ecc...

non so se si usano così le funzioni o se si deve usare (es per round) Math.round
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
  • 15 Ott 2012
  • #12
cavaliere123 ha scritto:
Allora il procedimento matematico è il seguente... ammettiamo che voglia diminuirlo del 40%

dato le dimensioni originarie con :

HTML:
 var larghezza = document.getElementById(img).width;

	var altezza = document.getElementById(img).height;

basterebbe fare :

HTML:
var nuovalarghezza = larghezza / 40*100

var nuovaaltezza = altezza / 40*100

Ma il risultato se esce con la virgola dovrebbe approssimarlo per eccesso sino al prossimo intero.
Come ragionamento è logico ??
Clicca per allargare...

Ciao,

il calcolo della percentuale è scritta al contrario prima dividi / 100 dopo moltiplichi * XX

no

Codice:
var nuovalarghezza = larghezza / 40*100

var nuovaaltezza = altezza / 40*100

ma

Codice:
var nuovalarghezza = larghezza / 100 * 40

var nuovaaltezza = altezza / 100 * 40

Per risultati con decimale usa Math.round()

Codice:
var nuovalarghezza = Math.round(larghezza / 100 * 40)

var nuovaaltezza = Math.round(altezza / 100 * 40)


Codice:
.dim ( width:90px;
         height:"auto" )

auto senza doppi apici e usa le graffe {} non le tonde ()

Codice:
.dim { width:90px;
         height:auto 
}

Esempio di ridimensionamento per w o per h

Per width fisso a 200px, ridimensiona height

Codice:
<img src="immagine.jpg" 
onload="w=this.width; h=this.height; if(w>200||h>200) if(w>h) {h=h*200/w;w=200} else {w=w*200/h;h=200};this.width=w;this.height=h">

Per height fisso a 200px, ridimensiona width

Codice:
<img src="immagine.jpg" 
onload="w=this.width; h=this.height; if(w>200||h>200) if(w<h) {h=h*200/w;w=200} else {w=w*200/h;h=200};this.width=w;this.height=h">


Valeria.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 15 Ott 2012
  • #13
ciao vale
e per fare come avevo detto io? col metodo mutuato da php?
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
  • 15 Ott 2012
  • #14
borgo italia ha scritto:
ciao vale
e per fare come avevo detto io? col metodo mutuato da php?
Clicca per allargare...

Ciao borgo,

il metodo min in PHP equivale a visualizza il minore dei due numeri.

Valeria.
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
  • 15 Ott 2012
  • #15
Ciao,

con una immagine di 160x144px il PHP quele sarebbe il risultato.

Valeria.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 15 Ott 2012
  • #16
ciao vale
cosa intendi per risultato di una 160x144?
con php se l'immagine è piu grande la riduce (effettivamente), se piu piccola no e la riduce in funzione del rapporto minimo tra le grandezze richieste e le reali.
poi Math.min(x,y) non è anche una funzione js?
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
  • 15 Ott 2012
  • #17
Ciao,

Math.nin(20,10) visualizza il numero più piccolo 10 ma non se ci sono operazioni

Math.min

se usi Math.min restituisce 89x80 su una immagine di 160x144

vuoi che se superiori a 120x80 vengono ridimensionate a quelle misure?


Valeria.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 15 Ott 2012
  • #18
ciao
il mio comunque è solo un interesse accademico (il php che uso funzia perfettamente), anche perche le riduce effettivamente, mentre il js riduce solo la visualizzazione e l'immagine da 2000kb rimane di 2000kb
Codice:
//....
var larghezza = document.getElementById(img).width;
var altezza = document.getElementById(img).height;
var lar_rich = 120;
var alt_rch = 80;
var r_w=lar_rich/larghezza;
var r_h=alt_rich/altezza;
var rap= Math.min(r_w, r_h);// se non accetta il calcolo almeno due varibili si spero, altrimenti min non servirebbe a un...
if(rap < 1){
var new_lar= Math.round(larghezza*rap);
var new_alt= Math.round(altezza*rap);
}else{
var new_lar= larghezza;
var new_alt= altezza;
}
//e qui usare le new_lar e new_alt per visualizzare img ridimensionata se serve
//ecc...
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
  • 15 Ott 2012
  • #19
Ciao borgo,

var lar_rich = 120;
var alt_rch = 80;
var r_w=lar_rich/larghezza;
var r_h=alt_rich/altezza;


Codice:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">


<script type="text/javascript">
window.onload=function(){
var larghezza = document.getElementById("img").width;
var altezza = document.getElementById("img").height;
var lar_rich = 120;
var alt_rich = 80;
if(larghezza < lar_rich || altezza < alt_rich){
var r_w=lar_rich/larghezza;
var r_h=alt_rich/altezza;
}else{
larghezza=lar_rich;
altezza=alt_rich;
}
var rap= Math.min(r_w, r_h);// se non accetta il calcolo almeno due varibili si spero, altrimenti min non servirebbe a un...
if(rap < 1){
var new_lar= Math.round(larghezza*rap);
var new_alt= Math.round(altezza*rap);
}else{
var new_lar= larghezza;
var new_alt= altezza;
}
document.getElementById("img").width=new_lar;
document.getElementById("img").height=new_alt;
}
</script>


</head>
<body> 
<img id="img" src="http://users10.jabry.com/vale2/relax.jpg" title="titolo" alt="testo alternativo" /> <img src="http://users10.jabry.com/vale2/relax.jpg" title="titolo" alt="testo alternativo" /> 


</body>
</html>

online

http://users10.jabry.com/vale2/resize.html

Valeria.
 
Ultima modifica: 15 Ott 2012

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 15 Ott 2012
  • #20
ciao
perfect
 
  • 1
  • 2
Succ.
1 di 2 Succ. Ultimo
Devi accedere o registrarti per poter rispondere.

Discussioni simili

A
[WordPress] Ridimensionare immagini preview della fotogallery
  • AlecsSandro
  • 31 Ago 2018
  • WordPress
Risposte
8
Visite
2K
WordPress 1 Set 2018
AlecsSandro
A
A
Ridimensionare immagini in PHP
  • alemian95
  • 3 Mag 2017
  • PHP
Risposte
6
Visite
3K
PHP 4 Mag 2017
alemian95
A
M
ridimensionare le immagini
  • maxxjo
  • 19 Feb 2014
  • PHP
Risposte
2
Visite
1K
PHP 21 Feb 2014
flameseeker
M
ridimensionare immagini al volo
  • m.pittini
  • 4 Feb 2010
  • ASP.NET
Risposte
1
Visite
3K
ASP.NET 4 Feb 2010
Vins
V
S
Ridimensionare Immagini online
  • Semws
  • 28 Ago 2007
  • PHP
Risposte
8
Visite
3K
PHP 5 Set 2007
Eliox
M
Script per ridimensionare immagini
  • Maciuw
  • 21 Feb 2007
  • PHP
Risposte
0
Visite
2K
PHP 21 Feb 2007
Maciuw
M
M
ridimensionare un'immagine per ottenere una thumbnail
  • mickey123
  • 12 Set 2015
  • PHP
Risposte
4
Visite
2K
PHP 14 Set 2015
n1k4r0
N
non riesco a caricare un allegato percgè non riesco a ridimensionare la finestra
  • marino51
  • 3 Feb 2015
  • Supporto Mr.Webmaster
Risposte
0
Visite
2K
Supporto Mr.Webmaster 3 Feb 2015
marino51
[illustrator CC] come ridimensionare lo spessore di una traccia selezionata
  • braccobaldo
  • 10 Gen 2015
  • Webdesign e Grafica
Risposte
1
Visite
6K
Webdesign e Grafica 15 Gen 2015
Fandango Visual
Funzione per ridimensionare div in base alla risoluzione schermo..
  • otto9due
  • 29 Nov 2014
  • Javascript
Risposte
5
Visite
4K
Javascript 30 Nov 2014
otto9due
Z
Script per aprire video youtube sia apre a schermo intero e poi ridimensionare in automatico
  • Zubizarreta
  • 24 Giu 2014
  • Javascript
Risposte
1
Visite
2K
Javascript 10 Lug 2014
Shyson
M
Frame noresize [Era: Frame non che non si può ridimensionare]
  • m.pittini
  • 6 Mar 2012
  • HTML e CSS
Risposte
1
Visite
2K
HTML e CSS 7 Mar 2012
maxbossi
Ridimensionare i DIV con contenuto variabile
  • metalgemini
  • 5 Gen 2012
  • HTML e CSS
Risposte
1
Visite
4K
HTML e CSS 9 Gen 2012
luque
L
A
Foto da ridimensionare
  • antonioamabile
  • 15 Nov 2011
  • Photoshop
Risposte
5
Visite
3K
Photoshop 22 Feb 2013
farangi
F
V
ridimensionare larghezza forma + aumento dimensione caratteri
  • vinarcid0810
  • 8 Mag 2011
  • Flash
Risposte
1
Visite
2K
Flash 9 Mag 2011
micio86
S
ridimensionare pannello scelta
  • sm@il
  • 19 Nov 2010
  • HTML e CSS
Risposte
0
Visite
1K
HTML e CSS 19 Nov 2010
sm@il
S
ridimensionare immagine da hd con php
  • helpdesk
  • 29 Nov 2009
  • PHP
Risposte
8
Visite
2K
PHP 2 Dic 2009
borgo italia
ridimensionare immagine
  • helpdesk
  • 24 Ott 2009
  • PHP
Risposte
9
Visite
2K
PHP 25 Ott 2009
helpdesk
Y
ridimensionare un'immagine
  • yok
  • 10 Set 2009
  • PHP
Risposte
18
Visite
3K
PHP 17 Set 2009
Eliox
M
[ridimensionare html+flash]
  • memero
  • 22 Mag 2008
  • Javascript
Risposte
0
Visite
2K
Javascript 22 Mag 2008
memero
M
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • Javascript
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?