3 messaggi dal 21 settembre 2011
Salve, sono alle prime armi con con asp.net,
ho un problema ho una table divisa in 2 celle (td)
in una delle due celle (50% della grandezza originale della tabella),
visualizzo un immagine che dovrò ruotare con un javascript.
il mio problema nasce quando eseguo il javascript per la rotazione, in pratica mi fa vedere l'immagine della dimensione originale e non più nelle dimensioni che ho impostato nella table.
c'è un modo di risolvere questo problema?

grazie
3.082 messaggi dal 06 settembre 2002
Contributi | Blog
Ciao,

con che metodo ruoti l'immagine? a prima impressione sembra che quel metodo sovrascriva le dimensioni che hai impostato tu inizialmente. Quello che potresti fare è rotare l'immagine e dopo riassegnargli le dimensioni che vuoi tu

HTH
.

Nothing can be born from hartred

Stefano (SM15455) Mostarda
http://blogs.aspitalia.com/SM15455
Rome Italy
3 messaggi dal 21 settembre 2011
tramite rotateright/left del javascript jquery.rotate trovato in rete

questo è il codice:


jQuery.fn.rotate = function(angle,whence) {
var p = this.get(0);

// we store the angle inside the image tag for persistence
if (!whence) {
p.angle = ((p.angle==undefined?0:p.angle) + angle) % 360;
} else {
p.angle = angle;
}

if (p.angle >= 0) {
var rotation = Math.PI * p.angle / 180;
} else {
var rotation = Math.PI * (360+p.angle) / 180;
}
var costheta = Math.cos(rotation);
var sintheta = Math.sin(rotation);

if (document.all && !window.opera) {
var canvas = document.createElement('img');

canvas.src = p.src;
canvas.height = p.height;
canvas.width = p.width;

canvas.style.filter = "progid:DXImageTransform.Microsoft.Matrix(M11="+costheta+",M12="+(-sintheta)+",M21="+sintheta+",M22="+costheta+",SizingMethod='auto expand')";
} else {
var canvas = document.createElement('canvas');
if (!p.oImage) {
canvas.oImage = new Image();
canvas.oImage.src = p.src;
} else {
canvas.oImage = p.oImage;
}

canvas.style.width = canvas.width = Math.abs(costheta*canvas.oImage.width) + Math.abs(sintheta*canvas.oImage.height);
canvas.style.height = canvas.height = Math.abs(costheta*canvas.oImage.height) + Math.abs(sintheta*canvas.oImage.width);

var context = canvas.getContext('2d');
context.save();
if (rotation <= Math.PI/2) {
context.translate(sintheta*canvas.oImage.height,0);
} else if (rotation <= Math.PI) {
context.translate(canvas.width,-costheta*canvas.oImage.height);
} else if (rotation <= 1.5*Math.PI) {
context.translate(-costheta*canvas.oImage.width,canvas.height);
} else {
context.translate(0,-sintheta*canvas.oImage.width);
}
context.rotate(rotation);
context.drawImage(canvas.oImage, 0, 0, canvas.oImage.width, canvas.oImage.height);
context.restore();
}
canvas.id = p.id;
canvas.angle = p.angle;
p.parentNode.replaceChild(canvas, p);
}

jQuery.fn.rotateRight = function(angle) {
this.rotate(angle==undefined?90:angle);
}

jQuery.fn.rotateLeft = function(angle) {
this.rotate(angle==undefined?-90:-angle);
}





vorrei anche capire come posso salvare l'immagine ruotata dai javascript. riesco solamente a visualizzarla.

grazie e buon natale a tutti
Modificato da gnufy il 23 dicembre 2011 18.25 -
3.082 messaggi dal 06 settembre 2002
Contributi | Blog
Ciao,

salvare l'immagine in automatico sul lcient non è possibile per motivi di sicurezza (pensa cosa succedesse se un sito di un hacker potesse salvare dei file sul tuo pc in automatico).

Per quanto riguarda invece il problema delle dimensioni, io farei come ti dicevo prima: memorizzati le dimensioni dell'immagine prima di rotarla (puoi usare i metodi width e height di jquery) e una volta finito di ruotarla reimposta iwidth e height iniziali.

HTH
.

Nothing can be born from hartred

Stefano (SM15455) Mostarda
http://blogs.aspitalia.com/SM15455
Rome Italy
3 messaggi dal 21 settembre 2011
però una volta ruotata tramite i javascript posso salvarla sul server?

ma il problema della dimensione diversa dell'immagine si pone appena dico al javascript di ruotarla. io vorrei che me la ruotasse delle dimensioni che voglio io. non ripristinarla solamente alla fine. non so se mi sono spiegato.
cmq grazie mille!

avrei anche un altro problema. sembra che explorer dia priorità all'immagine che sta dentro la table. ovvero se l'immagine è il 100% della cella, explorer mi da il 100% dell immagine. mentre su firefox la priorità viene data alla cella

Modificato da gnufy il 13 gennaio 2012 12.09 -
Modificato da gnufy il 20 gennaio 2012 15.37 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
Community
Ultimi messaggi
UTENTI ONLINE
In primo piano

I più letti di oggi

Media
In evidenza
MISC