PDA

Ver la Versión Completa : Texto e imagenes


mosorio
18-06-2003, 14:12:27
Hola compañeros,
Quisiera saber si es posible insertar texto e imágenes en un campo blob, se que se puede hacer por separados, pero lo que quiero saber es si puedo insertar estos al mismo campo.
Me gustaría insertar un documento en un campo pero con las imágenes que tiene.

Gracias de antemano.

kinobi
18-06-2003, 14:45:20
Hola,

el modelo relacional asume que un campo (o atributo), sea del tipo que sea, es la unidad mínima de información con la que puedes trabajar. Los campos de tipo BLOB, que es un saco para almacenar información no estruturada, admiten cualquier cosa siempre que pueda ser tratada como un todo desde el punto de vista del servidor. Otra cosa es que una vez recuperado el campo de la base de datos tú puedas interpretar la información como quieras: dos textos y tres imágenes, cuatro documentos html y dos imágenes comunes ...

Resumiendo: puedes almacenar en un BLOB un documento y sus imágenes, pero previamente al almacenaje debes someter a la información a un empaquetamiento (p.ej. un archivo zip, tar, ...) que te permita guardarla como un único dato.

Saludos.

mosorio
17-10-2003, 17:02:21
Hola kinobi!
Retomando este hilo, hay la posibilidad de utilizar algún algoritmo para comprimir la información (imagenes, texto) y asignarlos al mismo campo??.
Lo digo porque lo que necesito hacer es:
un módulo donde el usuario escriba texto normal con formato, puede ser en un dbritchedit incluyendole imágenes de cualquier tipo, en especial capturadas por el boton "printscreen" desde el portapapeles y pegarlas en la misma donde esta escribiendo.
He buscado por todas partes, pero no se como implementarlo, tampoco he encontrado algo, todo es por separado.

Algo que no tengo claro es que al comprimir en un .zip y colocarlo en el campo para grabarlo. Quiero que esto sea totalmente transparente para el usuario y que no sea tan pesado al momento de cargarlo para ser leido.

Agradecería que me dieran alternativas de como implementarlo.
Queda claro que lo que necesito es que toda la información quede en un solo campo blob (imagen y texto).

Gracias de antemano

Ixra
17-10-2003, 18:28:39
No seas güey Mosorio, la verdad no entiendo por qué tanto alboroto con lo del texto e imágenes. Yo hice una aplicación que inserta texto e imágenes al mismo tiempo sin problemas.

A ver, es que si entiendes que puedes meterle a un blob un (stream) de un Richedit entonces para qué diablos quieres comprimir la información??? Es decir, si ya sabes que puedes meter un richedit al BLOB, en el richedit metes imágenes y texto.

¿Entonces cuál es tu bronca??

La verdad no entiendo. Por cierto el componente richedit que trae Delphi no sirve para manejar imágenes incrustadas. Si tienes las 1st class pues ya chingaste.

Otra cosa... ahorita se me estaba ocurriendo algo: ¿Sabías que puedes meter cualquier cosa que te venga en gana a la BD?
Por ejemplo desarrollé una aplicación que podía meter diagramas hechos con clipart de Word en la base de datos. ¿Cómo? Pues graba el Stream de un objeto OLE (como Power, Word, Excel, Flash, etc) y puedes desarrollar una aplicación increíblemente espectacular en ... cinco minutos. Graba tus planos de Autocad, hojas de cálculo de excel y animacíones de Power en tu BLOB y haz que tu cliente te bese el trasero.


Saludos.

kinobi
17-10-2003, 18:49:04
Hola,

Posteado originalmente por mosorio
Algo que no tengo claro es que al comprimir en un .zip y colocarlo en el campo para grabarlo.

pásate por alguna página de componentes (Torry, DSP, y similares). Allí encontrarás componentes de empaquetamiento y compresión.

Saludos.

mosorio
17-10-2003, 19:24:29
Hola Ixra!

Si lo pregunto es porque no se como hacerlo, si tu lo haz hecho indicame como hacerlo, que componentes usar etc, hay cosas que desconozco de delphi, es tan grande que en el poco tiempo que llevo no he trabajado con muchas cosas, y por favor no es alboroto ni tampoco soy güey, para eso es el foro. Creo que si se va a colaborar en una respuesta hay que hacerlo de forma amable al igual que la pregunta.

Si no es mucha molestia podrías indicarme con algun trozo de código o componentes como dije para poder investigar sobre ellos y poder ponerme manos a la obra???

Gracias de todas formas

Ixra
17-10-2003, 20:48:17
A que mi Mosorio, ya se nos sintió...


Bueno, para que se te pase el sentimiento te comento cómo puedes grabar streams OLE en un BLOB.

¿Por qué usar OLE? Porque... me imagino que si quieres grabar texto e imágenes juntos, pues sería fabuloso darle a tu usuario una interfaz... de Word, de PaintBrush, de Photopaint... ¿no?
Eso sí, necesitas tener instalado dicho paquete.

Usar TOLEContainter para hacer conexión con el Servidor OLE, usar TBlobStream para leer y escribir la información desde la base de datos y hace TOLEContainer

Eso es todo, el objeto OLE por sí mismo hace toda la interfaz.

kinobi
17-10-2003, 21:11:00
Hola,

Posteado originalmente por Ixra
A que mi Mosorio, ya se nos sintió...

Llevas poco tiempo por estos foros (dado que tu número de mensajes enviados es 6) e imagino que ya has leído la Guía de estilo de los foros (http://www.clubdelphi.com/foros/guiaestilo.php). De todas formas, te informo de algunas características de los usuarios de estos foros:

1. Participa gente de muy diversos niveles: desde noveles hasta expertos. Es más, algunos expertos en determinados temas son noveles en otros.
Conclusión: lo que para algunos puede ser evidente, para otros puede no serlo tanto.

2. Participa gente de todas las partes del globo. Así pues, determinadas expresiones, giros y modismos, propios de cada zona, pueden ser malinterpretados y ser considerados no amistosos.
Conclusión: utilizar un Español lo más "neutro" posible.

3. La participación en los hilos suele ser mucho más tranquila y sosegada que en otros medios (léase IRC, chats y afines).
Conclusión: tranquilidad y sosiego antes de dar una respuesta.

Supongo que entiendes que quiero decir.

Saludos.

mosorio
18-10-2003, 22:27:05
Hola!
Me explico lo que quiero, se que con lo que has mencionado es correcto, pero no quiero amarrar al usuario a tener un paquete instalado para mostrar unas características de cada uno.
Lo que quiero es hacer lo siguiente, en un richedit permitir escribir al usuario y si le biene en gana de pegar una imágen que lo haga, no quiero que tenga que abrir word o algun paquete de software instalado.


Gracisa de antemano.

Ixra
19-10-2003, 00:57:00
Mosorio,

Te mencioné lo de la interfaz OLE porque la verdad, es espectacular y todos los clientes a los que les he presentado esta tecnología se le ha hecho bastante impresionante.

Pero si no quieres "amarrar" al cliente para que tenga instalado el PaintBrush, el Word o el Photopaint, entonces te puedo recomendar DBRichedits bastante buenos que soportan la incrustación de cualquier objeto (no solo imágenes, sino audio, video, CAD, e incluso archivos).

En primer lugar yo te recomendaría el TwwDBRichEdit que viene en la suite InfoPowers de la compañía anglosajona Woll2Woll. Si no tienes la suite puedes bajar la versión demo de su sitio (http://www.woll2woll.com). Yo compré la versión para Delphi 7 y debo decirte que estoy más que satisfecho con el componente. Es muy fácil de usar, virtualmente no requiere nada de programación ya que el mismo componente tiene métodos de incrustación de objetos y se conecta eficientemente a un campo BLOB de tu base de datos, por lo que puedes desarrollar la funcionalidad que deseas en menos de 1 minuto.

En segundo lugar puedo recomendarte un gran componente que es de una compañia alemana WPCubed gMBh que se especializa en Richedits y tiene un componente Richedit aún más poderoso que el de infopowers, pero este requiere un poco más de programación (y es un poco más caro). Yo tengo una versión demo que venía de regalo en una revista de Delphi Informant y es por la revista donde me enteré del componente. La página es http://www.wpcubed.com y ahí puedes descargar una versión Demo. Este componente tiene la ventaja de que es en sí mismo un "Mini Word" porque trae reglas, manejo de tabuladores, menús integrados y hasta su propio manejador de párrafos.

Existen otros que también son buenos, pero puedes investigar por tu cuenta.

Otra cosa, date cuenta que si estás en la industria muchas veces la solución a tus problemas se encuentra en venta por alguna de las muchas compañías de software. Si tu problema es el costo de estas herramientas existen alternativas para la adquisición e implementación en tu aplicación.

Si lo que quieres es hacerlo por tí mismo, entonces por ahí hace ya tiempo alguien me había mencionado que tomando como clase base el richedit de Delphi podías implementarle la funcionalidad de insertar objetos, pero eso ya tendrías que investigarlo por tu cuenta. Dependiendo de tu habilidad y experiencia, yo diría que tardarías de 1 mes a 6 meses en lograr hacerlo.