Puede hacerlo utilizando base 64, mira a la página web que estoy trabajando con: http://www.wordirish.com todas las imágenes son manipuladas en el lado del cliente usando HTML5 o flash para navegadores antiguos.
sólo necesitas hacerlo:
function thisFunctionShoulBeCallByTheFileuploaderButton(e){
e.preventDefault && e.preventDefault();
var image, canvas, i;
var images = 'files' in e.target ? e.target.files : 'dataTransfer' in e ? e.dataTransfer.files : [];
if(images && images.length) {
for(i in images) {
if(typeof images[i] != 'object') continue;
image = new Image();
image.src = createObjectURL(images[i]);
image.onload = function(e){
var mybase64resized = resizeCrop(e.target, 200, 150).toDataURL('image/jpg', 90);
alert(mybase64resized);
}
}
}
}
function resizeCrop(src, width, height){
var crop = width == 0 || height == 0;
// not resize
if(src.width <= width && height == 0) {
width = src.width;
height = src.height;
}
// resize
if(src.width > width && height == 0){
height = src.height * (width/src.width);
}
// check scale
var xscale = width/src.width;
var yscale = height/src.height;
var scale = crop ? Math.min(xscale, yscale) : Math.max(xscale, yscale);
// create empty canvas
var canvas = document.createElement("canvas");
canvas.width = width ? width : Math.round(src.width * scale);
canvas.height = height ? height : Math.round(src.height * scale);
canvas.getContext("2d").scale(scale,scale);
// crop it top center
canvas.getContext("2d").drawImage(src, ((src.width * scale) - canvas.width) * -.5 , ((src.height * scale) - canvas.height) * -.5);
return canvas;
}
function createObjectURL(i){
var URL = window.URL || window.webkitURL || window.mozURL || window.msURL;
return URL.createObjectURL(i);
}
pedazo de la torta;)
No sé si esto es posible. Es probable que Facebook tome cualquier imagen que cargue, la vuelva a clasificar según el tamaño en el servidor y luego la guarde. Luego vería la imagen de nuevo en la página. Si quieres cambiar el tamaño del código para PHP, tengo algunos que he desarrollado. El único problema es que no tengo la opacidad funcionando para PNG que se cambian de tamaño. – James
¿qué hay de