Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Json de PHP a Imagen (https://www.clubdelphi.com/foros/showthread.php?t=86120)

Kubelo 19-06-2014 21:18:44

Json de PHP a Imagen
 
Buenas, gracias por la ayuda antes que nada.

Mi problema es que desde un servicio web desarrollado en Delphi XE:

function RecibirImagen(Imagen: WideString): boolean;

El servicio es consumido por PHP, tengo un plugin que me permite realizar un dibujo (me muestra un lienzo en blanco y desde el smartphone o tablet se puede "pintar"). El objetivo es que se pueda de alguna manera firmar (hacer la rúbrica) y luego almacenar esa imagen.

Pues bien, el plugin de PHP genera un arrayJSON que es lo que recibo en el servicio. El problema es que esa cadena no se transformarla en una imagen para almacenarla. Quiero que se almacene en JPG o BMP.

A ver si me podéis orientar. GRACIAS DE NUEVO!!!

dec 19-06-2014 22:02:52

Hola,

Pon aquí un ejemplo del JSON que recibes.

Kubelo 19-06-2014 22:50:44

Tienes razón, debí ponerlo desde primer momento...

Ahí va lo que recibo:

[{"lx":45,"ly":139,"mx":45,"my":138},{"lx":38,"ly":248,"mx":45,"my":139},{"lx":37,"ly":255,"mx":38,"m y":248},{"lx":40,"ly":219,"mx":40,"my":218},{"lx":54,"ly":197,"mx":40,"my":219},{"lx":107,"ly":143," mx":54,"my":197},{"lx":52,"ly":197,"mx":52,"my":196},{"lx":87,"ly":234,"mx":52,"my":197},{"lx":92,"l y":239,"mx":87,"my":234},{"lx":96,"ly":199,"mx":96,"my":198},{"lx":101,"ly":234,"mx":96,"my":199},{" lx":119,"ly":236,"mx":101,"my":234},{"lx":132,"ly":199,"mx":119,"my":236},{"lx":132,"ly":197,"mx":13 2,"my":199},{"lx":163,"ly":115,"mx":163,"my":114},{"lx":163,"ly":173,"mx":163,"my":115},{"lx":149,"l y":230,"mx":163,"my":173},{"lx":171,"ly":231,"mx":149,"my":230},{"lx":179,"ly":200,"mx":171,"my":231 },{"lx":161,"ly":194,"mx":179,"my":200},{"lx":160,"ly":194,"mx":161,"my":194},{"lx":193,"ly":211,"mx ":193,"my":210},{"lx":211,"ly":210,"mx":193,"my":211},{"lx":222,"ly":207,"mx":211,"my":210},{"lx":22 5,"ly":199,"mx":222,"my":207},{"lx":217,"ly":191,"mx":225,"my":199},{"lx":202,"ly":191,"mx":217,"my" :191},{"lx":196,"ly":199,"mx":202,"my":191},{"lx":199,"ly":227,"mx":196,"my":199},{"lx":215,"ly":230 ,"mx":199,"my":227},{"lx":225,"ly":228,"mx":215,"my":230},{"lx":251,"ly":107,"mx":251,"my":106},{"lx ":247,"ly":161,"mx":251,"my":107},{"lx":247,"ly":209,"mx":247,"my":161},{"lx":247,"ly":227,"mx":247, "my":209},{"lx":247,"ly":228,"mx":247,"my":227},{"lx":295,"ly":196,"mx":295,"my":195},{"lx":274,"ly" :193,"mx":295,"my":196},{"lx":261,"ly":205,"mx":274,"my":193},{"lx":305,"ly":226,"mx":261,"my":205}, {"lx":305,"ly":199,"mx":305,"my":226},{"lx":293,"ly":189,"mx":305,"my":199},{"lx":291,"ly":191,"mx": 293,"my":189}]

Gracias por la ayuda :)

dec 19-06-2014 23:00:44

Hola,

Vaya... la verdad es que esperaba que la imagen estuviese codificada en "base 64" o algo parecido, pero, la verdad es que de lo que has puesto arriba yo soy incapaz de deducir por dónde empezar... ¿No puedes contactar con quien proporciona dicho resultado para preguntarle qué representa exactamente y cómo lo hace? Lamento no poder ayudarte.

Héctor Randolph 20-06-2014 01:33:00

Hola

En este enlace puedes encontrar información acerca del API que estás utilizando

http://thomasjbradley.ca/lab/signature-pad/

Como bien dice Dec, existe en la Api una función que te devuelve la imagen codificada en base64.

Si no tienes acceso al servidor, entonces puedes trabajar con la cadena de obtienes como respuesta en JSON.

Esta es la interpretación que puedes darle:

---------------------------------------
The signature as a native Javascript array


Returns the drawn signature as a native Javascript array

Each item in the array is an object following this format:

{lx : 20, ly : 34, mx : 20, my : 34}

lx
The lineTo() x coordinate
ly
The lineTo() y coordinate
mx
The moveTo() x coordinate
my
The moveTo() y coordinate
---------------------------------

En Delphi podrías por ejemplo utilizar un Canvas para dibujar las líneas y después guardar la imagen.

Saludos

Kubelo 20-06-2014 09:05:59

El servidor lo manejo yo también, en eso no tengo problema.

Hemos modificado el resultado de la función y ahora nos devuelve esto:

PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMg Ii0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRk Ij48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMjg0IiBoZWlnaHQ9 IjEwOSI+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJy b3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTSAxIDEwOCBjIDIuMjggLTEuNTIgODYuMyAtNzAuMzYgMTMwIC04NyBj IDQyLjU2IC0xNi4yIDEyNy41NyAtMjcuNzEgMTUxIC0yMCBjIDEwLjc3IDMuNTQgNC4yNiA1MC4yNiAxIDcwIGMgLTEuNDggOSAt MTcgMjcgLTE3IDI3Ii8+PC9zdmc+

Al parecer es formato image/svg+xml;base64, o eso pone en el pluggin...

Gracias de nuevo por la ayuda.


La franja horaria es GMT +2. Ahora son las 05:14:21.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi