Foros del Web » Programando para Internet » PHP »

Interfaz gráfica para redimensionar imagen

Estas en el tema de Interfaz gráfica para redimensionar imagen en el foro de PHP en Foros del Web. Hola, No sé si va aquí exactamente, pero como mi aplicación está hecha en PHP y mi intención es redimensionar la imagen de esta forma, ...
  #1 (permalink)  
Antiguo 19/01/2017, 08:20
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Interfaz gráfica para redimensionar imagen

Hola,

No sé si va aquí exactamente, pero como mi aplicación está hecha en PHP y mi intención es redimensionar la imagen de esta forma, ahí va mi duda:

¿Alguien sabe con qué tecnología/librería/funciones... está hecho el sistema de subir y redimensionar la imagen que tienen por ejemplo en Google + o sitios similares?

Es esa interfaz que te aparece la imagen subida con un recuadro que tu arrastras para que seleccione/recorte la imagen a como debe quedar.

Espero que alguien me pueda echar un cable con esto. Muchas gracias por anticipado.
  #2 (permalink)  
Antiguo 19/01/2017, 08:31
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Interfaz gráfica para redimensionar imagen

Para eso necesitas una combinación de PHP + JQuery como minimo... hay muchos ya creados que puedes adaptar a tu web, unos de pago y otros gratuitos como por ejemplo:

http://slimimagecropper.com/

puedes hechar mano de Google para encontrar muchos mas...

saludos
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #3 (permalink)  
Antiguo 19/01/2017, 09:25
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Interfaz gráfica para redimensionar imagen

Hola petit89,

Muchas gracias por tu respuesta y por el enlace (prefiero algo que no sea de pago y a ser posible en español )

Suponía lo de PHP y JQuery, pero a lo que me refiero también es que no sé ni cómo empezar a buscar, es decir, no sé qué es lo que tengo que buscar para encontrar algo como lo que me muestras.

Esperaremos a ver si hay alguien más que pueda dar opiniones y ayuda.
  #4 (permalink)  
Antiguo 19/01/2017, 10:46
 
Fecha de Ingreso: noviembre-2015
Mensajes: 231
Antigüedad: 8 años, 5 meses
Puntos: 86
Respuesta: Interfaz gráfica para redimensionar imagen

Yo empezaría por aquí http://www.google.es/search?site=&oq...vas+javascript
  #5 (permalink)  
Antiguo 19/01/2017, 12:39
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Interfaz gráfica para redimensionar imagen

Hola mpozo,

Muchas gracias por tu respuesta, pero no me refería a eso, va más por lo que ha respondido petit89, pero lo que necesitaría es lo del enlace que me ha pasado, solo que gratis y a ser posible en español, aunque no tenga tantas funcionalidades, lo que ocurre es que ando dando vueltas por Google y no encuentro nada parecido, creo que por no saber cómo buscarlo.

Habrá que seguir esperando a ver si alguien más puede echar un cable.
  #6 (permalink)  
Antiguo 19/01/2017, 13:44
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Interfaz gráfica para redimensionar imagen

Hola de nuevo...

Creo que ya he encontrado una posible solución, solo que, como casi todo, está en inglés y yo me llevo muuuyyyy mal con ese idioma, así que me va a costar...

Esto es lo que he encontrado: http://www.zoedev.com/javascript/rec...mage-cropping/

Me falta saber cómo guardar la imagen recortada en el servidor, que no le encuentro la vuelta por más que busco... Bueno, realmente me falta todo, hasta ahora solo estoy leyendo y releyendo páginas y códigos a ver cómo funciona...
  #7 (permalink)  
Antiguo 19/01/2017, 14:48
 
Fecha de Ingreso: noviembre-2015
Mensajes: 231
Antigüedad: 8 años, 5 meses
Puntos: 86
Respuesta: Interfaz gráfica para redimensionar imagen

Perdona que insista, pero una de las opciones de búsqueda es esta. Ahí tienes todo lo que necesitas para realizar lo que pretendes https://www.returngis.net/2013/10/re...html-5-canvas/
  #8 (permalink)  
Antiguo 21/01/2017, 13:08
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Interfaz gráfica para redimensionar imagen

Hola mpozo,

Lo que me dices está muy bien, pero todo lo que veo referente a canvas html5 es con imágenes que ya están en el servidor, no encuentro la manera de usar drag&drop o seleccionar archivo y sobre esa imagen, modificar con Jcrop o algo similar.

No sé si me explico. La idea es que el usuario pueda subir su foto y luego la recorte/redimensione a las medidas establecidas mediante alguno de estos plugins de crop.

Es como el sistema de G+, como ejemplo, yo arrastro o selecciono una imagen de mi equipo y esta aparece en el canvas, ahí se muestra el recuadro con la proporción que debe tener la imagen y las medidas máximas, de forma que, si mi imagen es de 500px X 500px, la proporción permitida es de 3/4 y las medidas máximas 150px X 200px, aparezca la imagen completa de 500 x 500 con el recuadro de 3/4 y un máximo de 150 x 200.

Si no me hago entender, por favor, preguntad lo que no se entienda, estoy empeñado en aprender a hacer esto pero necesito ayuda

Muchas gracias por anticipado.
  #9 (permalink)  
Antiguo 21/01/2017, 14:11
 
Fecha de Ingreso: agosto-2011
Mensajes: 306
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: Interfaz gráfica para redimensionar imagen

hola rbczgz, echa un vistazo aqui dropzone

un tutorial español aqui:

https://jonathanmelgoza.com/blog/sub...-vista-previa/

saludos
  #10 (permalink)  
Antiguo 22/01/2017, 13:39
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Interfaz gráfica para redimensionar imagen

Hola primary,

Muchas gracias por la información, pero tampoco es lo que ando buscando, es muy buen sistema, pero no encuentro la manera de que sirva para hacer lo que yo quiero.

No consigo encontrar la manera de subir una imagen con la opción de arrastrar a un canvas, que aparezca la previsualización y se pueda recortar a las medidas y proporciones que se predeterminen.

Existir sí existe porque está en mucho sitios: Google+, Facebook, y algunos otros que seguro ni siquiera conozco.

A ver si alguien me puede echar un cable para encontrarlo...
  #11 (permalink)  
Antiguo 22/01/2017, 14:36
 
Fecha de Ingreso: agosto-2011
Mensajes: 306
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: Interfaz gráfica para redimensionar imagen

Hola ten en cuenta que necesitas primero subir la imagen al servidor antes de poder manejarla, dimensionar o lo que sea. Como quieres gestionarla sin recargar pagina y ajax no acepta la manipulacion de imagenes debes hacerlo con un iframe oculto.

Partiendo de hay ya te haces una idea de como lograr tu proposito.
Necesitas php y javascript nada mas.
Saludos
  #12 (permalink)  
Antiguo 23/01/2017, 09:12
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Interfaz gráfica para redimensionar imagen

Hola primary,

Con AJAX sí se puede realizar la subida de archivos y parece que va a ser la única solución, subir la imagen mediante AJAX y ahí agregarle las funcionalidades de Crop o JCrop o el que sea...

Seguiré comentando lo que vaya viendo.
  #13 (permalink)  
Antiguo 23/01/2017, 09:52
 
Fecha de Ingreso: agosto-2011
Mensajes: 306
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: Interfaz gráfica para redimensionar imagen

Cita:
Iniciado por rbczgz Ver Mensaje
Hola primary,

Con AJAX sí se puede realizar la subida de archivos y parece que va a ser la única solución, subir la imagen mediante AJAX y ahí agregarle las funcionalidades de Crop o JCrop o el que sea...

Seguiré comentando lo que vaya viendo.
tienes razon hace tiempo que no uso ajax no conocia formdata.
  #14 (permalink)  
Antiguo 23/01/2017, 11:40
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Interfaz gráfica para redimensionar imagen

Yo sinceramente de todo lo que habéis dicho me quedo con la opción que que pudiste más arriba

Cropper, me parece bastante completa además de ser responsive y soportar los touch para moviles.

En cuanto a la subida de archivos en el mismo github de cropper puedes ver un ejemplo para realizar lo mediante ajax.

Te dejo el ejemplo que aparece por aquí.
Código Javascript:
Ver original
  1. // Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`
  2. $().cropper('getCroppedCanvas').toBlob(function (blob) {
  3.   var formData = new FormData();
  4.  
  5.   formData.append('croppedImage', blob);
  6.  
  7.   $.ajax('/path/to/upload', {
  8.     method: "POST",
  9.     data: formData,
  10.     processData: false,
  11.     contentType: false,
  12.     success: function () {
  13.       console.log('Upload success');
  14.     },
  15.     error: function () {
  16.       console.log('Upload error');
  17.     }
  18.   });
  19. });
__________________
Unset($vida['malRollo']);
  #15 (permalink)  
Antiguo 26/01/2017, 01:58
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Interfaz gráfica para redimensionar imagen

Hola de nuevo,

Bueno, pues después de muchas pruebas e intentos, debo decir que no lo he conseguido.

No he conseguido recortar la imagen antes de subirla, no tengo ni idea de cómo presentarla en pantalla para poder recortarla y tampoco he podido recortar la imagen después de subirla porque no he conseguido que me aparezca el dichoso marco del croper.

He necesitado implementar una subida de archivos en un proyecto y me habría gustado hacerlo con este sistema, pero visto lo visto, lo he tenido que hacer "a las bravas" y redimensionar la imagen a un tamaño fijo.

La función que he creado, tomando ideas de un sitio y otro, es esta:

Código PHP:
Ver original
  1. function SubirRedimensionarArchivos($campo_archivo, $ruta, $carpeta, $size, $permitidos, $nombre_archivo, $altura = 100, $anchura = 75, $calidad = 90) {
  2. // Función para subir y redimensionar archivos mediante PHP
  3. // Autor: Rubén Bitrián (http://www.cybernegocios.com)
  4. // USO: SubirArchivos($campo_archivo, $ruta, $size, $permitidos, $nombre_archivo, $altura, $anchura, $calidad);
  5. // @param $campo_archivo = $_FILES['nombre_campo'];
  6. // @param $ruta = "ruta absoluta de subida del archivo";
  7. // @param $carpeta = "ruta de subida del archivo relativa a la raiz";
  8. // @param $size = "tamaño máximo permitido en bytes"
  9. // @param $permitidos = array(array con los tipos de archivos permitidos); (http://www.freeformatter.com/mime-types-list.html#mime-types-list)
  10. // @param $nombre_archivo = "nombre del archivo a guardar"
  11. // @param $nombre_archivo = "nombre del archivo a guardar"
  12. // @param $altura = "altura máxima de la imagen, opcional, por defecto 100px"
  13. // @param $anchura = "anchura máxima de la imagen, opcional, por defecto 75px"
  14. // @param $calidad = "calidad en la compresión de la imagen, opcional, por defecto 90px"
  15. // @return: el error si lo hay o la ruta del archivo relativa a la raíz si ha ido todo bien
  16.  
  17.    // Obtener el tipo MIME del archivo enviado por el usuario
  18.    $finfo = new finfo(FILEINFO_MIME_TYPE);
  19.    $mime_usuario = $finfo->file($campo_archivo['tmp_name']);
  20.    $campo_archivo_tmp = $campo_archivo['tmp_name'];
  21.  
  22.     // Contrastar los tipos MIME
  23.     $permitidos = in_array($mime_usuario, $permitidos);  // Devolverá true o false
  24.  
  25.     if($permitidos == FALSE) {
  26.       // Si el archivo no está en la lista de permitidos, devolvemos error.
  27.       return 'Error: El archivo enviado no se corresponde a un tipo permitido';
  28.     }
  29.  
  30.     // Comprobar que el tamaño no excede el permitido
  31.     if ( $campo_archivo['size'] > $size ) {
  32.       return 'Error: El archivo enviado es mayor de lo permitido';
  33.     }
  34.  
  35.     // Si el archivo existe en la ruta, devolvemos error.
  36.     if ( file_exists($ruta.$nombre_archivo) == TRUE ) {
  37.       return 'Error: El archivo ya existe.';
  38.     }
  39.  
  40.          switch($mime_usuario) {
  41.             case 'image/jpeg': $img = ImageCreateFromJPEG($campo_archivo_tmp); break;
  42.             case 'image/png': $img = ImageCreateFromPNG($campo_archivo_tmp); break;
  43.             case 'image/gif': $img = ImageCreateFromGIF($campo_archivo_tmp); break;
  44.             case 'image/vnd.wap.wbmp': $img = ImageCreateFromWBMP($campo_archivo_tmp); break;
  45.             default: $img = ImageCreateFromJPEG($campo_archivo_tmp); break;
  46.          }
  47.  
  48.    if(!empty($img)) {
  49.       $new_w_R = ImageSX($img);
  50.       $new_h_R = ImageSY($img);
  51.       //$img_nueva_altura = 50;
  52.       // se calcula la relación alto/ancho
  53.       $aspect_ratio = $new_h_R/$new_w_R;
  54.       $aspect_ratio2 = $new_w_R/$new_h_R;
  55.          if ($new_w_R >= $new_h_R){
  56.             // se ajusta al nuevo tamaño
  57.             $altura = abs($anchura * $aspect_ratio);
  58.          } else {
  59.             $anchura = abs($altura * $aspect_ratio2);
  60.          }
  61.      
  62.       // crear imagen nueva
  63.       $thumb = ImageCreateTrueColor($anchura,$altura);
  64.       // redimensionar imagen original copiándola en la imagen. La imagen se reajustará al nuevo tamaño
  65.       ImageCopyResampled( $thumb, $img, 0, 0, 0, 0, $anchura, $altura, ImageSX($img), ImageSY($img) );
  66.       // guardar la imagen redimensionada donde indica $img_nueva
  67.       ImageJPEG($thumb,$campo_archivo_tmp,$calidad);
  68.    }
  69.  
  70.     // Si el archivo no se puede mover a su ruta, devolvemos error.
  71.     $mover_archivo = move_uploaded_file($campo_archivo['tmp_name'], $ruta.$nombre_archivo);
  72.     if ( $mover_archivo === FALSE ) {
  73.       return 'Error: Problema al subir el archivo';
  74.     } elseif ( $mover_archivo === FALSE ) {
  75.       return 'Error: ' . $mover_archivo;
  76.     }
  77.  
  78.   return $carpeta.$nombre_archivo;
  79. }

La he usado con AJAX y para ello la función llevaba algún añadido en los errores, pero como no es el caso aquí, he quitado esos añadidos.

Si alguien sabe como hacer lo que mencionaba en el comienzo de este hilo, sigo aceptando sugerencias/ayudas/ejemplos (y se alguien me lo da hecho, ya de fábula, jejeje )
  #16 (permalink)  
Antiguo 27/01/2017, 16:09
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Interfaz gráfica para redimensionar imagen

La única forma de usar la imagen antes de subirla es con Javascript y ya sé que no se te da el inglés, pero es lo que hay: http://stackoverflow.com/questions/6...-api-on-canvas

Una vez que el usuario acepte las modificaciones, envias el resultado a PHP por medio de AJAX; puede ser en base64 para no complicarte mucho: http://es.ourcodeworld.com/articulos...rvidor-con-php (esto si está en español)
__________________
- León, Guanajuato
- GV-Foto
  #17 (permalink)  
Antiguo 28/01/2017, 16:05
 
Fecha de Ingreso: noviembre-2015
Mensajes: 231
Antigüedad: 8 años, 5 meses
Puntos: 86
Respuesta: Interfaz gráfica para redimensionar imagen

Parece que entre la documentación que te hemos dado y la que has buscado no has conseguido unificar todo para lograr lo que pretendes. Aquí te dejo un ejemplo básico y entendible que podrás seguir desarrollando
Código Javascript:
Ver original
  1. <!DOCTYPE html>
  2. <html dir="ltr" lang="es-es">
  3.     <head>
  4.         <title></title>
  5.         <meta charset="utf-8">
  6.         <meta name="viewport" content="user-scalable=yes, width=device-width, initial-scale=1">
  7.         <style>
  8.             * {
  9.                 margin: 0;
  10.                 border: none;
  11.                 position: relative;
  12.             }
  13.  
  14.             html {
  15.                 height: 100%;
  16.             }
  17.  
  18.  
  19.             body {
  20.                 width: 100%;
  21.                 height: 100%;
  22.             }
  23.  
  24.  
  25.             #contenedor {
  26.                 width: 700px; /* mismo alto y ancho que #lienzo */
  27.                 height: 600px;
  28.                 margin: 0 auto;
  29.                 overflow: hidden;
  30.                 border: 1px solid red;
  31.             }
  32.  
  33.             #caja {
  34.                 width: 200px; /* mismo alto y ancho que #lienzoupload */
  35.                 height: 200px;
  36.                 float: left;
  37.                 top: 0;
  38.                 left: 0;
  39.                 cursor: move;
  40.                 visibility: hidden;
  41.                 position: absolute;
  42.                 opacity: 1;
  43.                 overflow: hidden;
  44.                 background-color: rgb(255, 255, 255);
  45.                 border: 1px solid rgb(204, 204, 204);
  46.                 z-index: 101;
  47.  
  48.             }
  49.  
  50.             #caja > img {
  51.                 position: absolute;
  52.                 top: 0;
  53.                 left: 0;
  54.                 display: block;
  55.             }
  56.         </style>
  57.         <script>
  58.             document.addEventListener('DOMContentLoaded', function() {
  59.  
  60.                  new dNdCrop('#caja', '#caja > img', '#contenedor', '#lienzo', '#lienzoupload', '#guardar', '#tablon');
  61.  
  62.             }, false);
  63.  
  64.  
  65.             function dNdCrop(caja, imagen, contenedor, lienzo, lienzoupload, guardar, tablon) {
  66.  
  67.                 this.caja = document.querySelector(caja);
  68.                 this.imagen = document.querySelector(imagen);
  69.                 this.contenedor = document.querySelector(contenedor);
  70.                 this.lienzo = document.querySelector(lienzo);
  71.                 this.lienzoupload = document.querySelector(lienzoupload);
  72.                 this.guardar = document.querySelector(guardar);
  73.                 this.tablon = document.querySelector(tablon);
  74.                 this.posLeftCaja = 0;
  75.                 this.posTopCaja = 0;
  76.                 this.foo;
  77.                 this.cajaW = this.caja.offsetWidth;
  78.                 this.cajaH = this.caja.offsetHeight;
  79.                 this.contenedorW = this.contenedor.offsetWidth;
  80.                 this.contenedorH = this.contenedor.offsetHeight;
  81.  
  82.                 this.dNd();
  83.  
  84.                 var lienzo = this.lienzo,
  85.  
  86.                 context = lienzo.getContext('2d'),
  87.  
  88.                 img = document.createElement('img'),
  89.  
  90.                 texto = true,
  91.  
  92.                 limpiaCavas = function () {
  93.  
  94.                     if (texto) {
  95.  
  96.                         context.clearRect(0, 0, lienzo.width, lienzo.height);
  97.  
  98.                         texto = false;
  99.                     }
  100.  
  101.                 },
  102.                 _this = this;;
  103.  
  104.                 context.fillText('Arrastra una imagen aquí', 240, 300);
  105.  
  106.  
  107.                 img.addEventListener('load', function () {
  108.  
  109.                     limpiaCavas();
  110.  
  111.                     context.drawImage(img, 0, 0);
  112.  
  113.                     _this.caja.style.visibility = 'visible';
  114.                     _this.lienzo.style.opacity = '.4';
  115.                    
  116.                 }, false);
  117.  
  118.  
  119.                 lienzo.addEventListener('dragover', function (evt) {
  120.  
  121.                     evt.preventDefault();
  122.  
  123.                 }, false);
  124.  
  125.  
  126.  
  127.                 lienzo.addEventListener('drop', function (evt) {
  128.  
  129.                     var files = evt.dataTransfer.files;
  130.  
  131.                     var file = files[0];
  132.  
  133.                     if (typeof FileReader !== 'undefined' && file.type.indexOf('image') != -1) {
  134.  
  135.                         var reader = new FileReader();
  136.  
  137.                         reader.addEventListener('load', function(evt) {
  138.  
  139.                             img.src = evt.target.result;
  140.                             _this.imagen.src = evt.target.result;
  141.                         });
  142.  
  143.                         reader.readAsDataURL(file);
  144.                     }
  145.  
  146.                     evt.preventDefault();
  147.  
  148.                 }, false);
  149.  
  150.  
  151.                 this.guardar.addEventListener('click', function() {
  152.  
  153.                     var lienzoupload = _this.lienzoupload,
  154.  
  155.                     context = lienzoupload.getContext('2d');
  156.  
  157.                     context.drawImage(img, _this.posLeftCaja, _this.posTopCaja, lienzoupload.width, lienzoupload.height, 0, 0, lienzoupload.width, lienzoupload.height);
  158.  
  159.                     var xhr = new XMLHttpRequest();
  160.  
  161.                     xhr.open('POST', 'subirArchivo.php', true);
  162.  
  163.                     xhr.onreadystatechange = function(){
  164.  
  165.                         if(xhr.status == 200) _this.tablon.textContent = xhr.responseText;
  166.                     }
  167.  
  168.                     xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  169.                     xhr.send('archivo="'+ lienzoupload.toDataURL());
  170.  
  171.                 }, false);
  172.             }
  173.  
  174.  
  175.             dNdCrop.prototype.dNd = function() {
  176.  
  177.                 var _this = this;
  178.  
  179.                 this.caja.addEventListener('mousedown', function(evt) {
  180.  
  181.                     evt.preventDefault();
  182.                     evt.stopPropagation();
  183.  
  184.                     this.addEventListener('mousemove', _this.foo = function(evt) {
  185.  
  186.                         evt.preventDefault();
  187.                         evt.stopPropagation();
  188.  
  189.                         var coorCursor = {x : evt.layerX, y : evt.layerY};
  190.  
  191.                         if (coorCursor.x >= (_this.cajaW/2) && coorCursor.x <= (_this.contenedorW - (_this.cajaW/2) - 2)) {
  192.  
  193.                             _this.posLeftCaja = coorCursor.x - (_this.cajaW/2);
  194.  
  195.                             _this.caja.style.left = _this.posLeftCaja + 'px';
  196.                             _this.imagen.style.left = -_this.posLeftCaja + 'px';
  197.                         }
  198.  
  199.                         if (coorCursor.y >= (_this.cajaH/2) && coorCursor.y <= (_this.contenedorH - (_this.cajaH/2) - 2)) {
  200.  
  201.                             _this.posTopCaja = coorCursor.y - (_this.cajaH/2);
  202.  
  203.                             _this.caja.style.top = _this.posTopCaja + 'px';
  204.                             _this.imagen.style.top = -_this.posTopCaja + 'px';
  205.  
  206.                         }
  207.  
  208.                     }, false);
  209.  
  210.                 }, false);
  211.  
  212.                 this.caja.addEventListener('mouseup', function(evt) {
  213.  
  214.                     evt.preventDefault();
  215.                     evt.stopPropagation();
  216.  
  217.                     this.removeEventListener('mousemove', _this.foo, false);
  218.  
  219.                 }, false);
  220.  
  221.                 this.contenedor.addEventListener('mouseout', function(evt) {
  222.  
  223.                     evt.preventDefault();
  224.                     evt.stopPropagation();
  225.  
  226.                     _this.caja.removeEventListener('mousemove', _this.foo, false);
  227.  
  228.                 }, false);
  229.  
  230.             }
  231.         </script>
  232.     </head>
  233.     <body>
  234.  
  235.         <div id="contenedor">
  236.             <canvas id="lienzo" width="700" height="600"></canvas>
  237.             <div id="caja">
  238.                 <img src="">
  239.             </div>
  240.             <canvas id="lienzoupload" width="200" height="200"></canvas>
  241.         </div>
  242.  
  243.         <input type="button" id="guardar" value="guardar">
  244.         <span id="tablon"></span>
  245.  
  246.     </body>
  247. </html>

subirArchivo.php
Código PHP:
Ver original
  1. <?php
  2. $base64 = $_POST['archivo'];
  3. $base64 = explode(",", $base64);
  4. $base64 = str_replace(' ', '+', $base64[1]);
  5. $data = base64_decode($base64);
  6. $img = imagecreatefromstring($data);
  7. if ($img === false) {
  8.     echo 'Ha ocurrido un error';
  9. } else {
  10.     imagejpeg($img, 'dirarchivos/'. md5(mt_rand() * time()) .'.jpg'); // directorio donde guardar el archivo y nombre del mismo
  11.     imagedestroy($img);
  12.     echo 'Todo salió bien';
  13. }
  14. ?>
  #18 (permalink)  
Antiguo 29/01/2017, 04:21
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Interfaz gráfica para redimensionar imagen

Muchas gracias mpozo,

En cuanto tenga un poco de tiempo, me pongo con ello a ver si lo saco. Ya iré poniendo las novedades aquí.

Etiquetas: interfaz, redimensionar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:35.