Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   longblob mas calidad (https://www.clubdelphi.com/foros/showthread.php?t=87251)

emeritos 04-12-2014 12:58:47

longblob mas calidad
 
Hola dilferos.

Estoy utilizando delphi7 con mysql, tengo un campo del tipo longbolb para unas imagenes. La maxima calidad que le puedo dar es de 500x667 pixeles, pero le quiero dar mucha mas calida toda la que se pueda, como por ejemplo 1944 X 2592 Pixeles. ¿Como lo puedo hacer?. Al ponerle esta ultima se sale error cuando lo grabo en la base de datos. Para mas informacion lo grabo asi:

Código Delphi [-]
    MQvehiculos11.Close;
    MQvehiculos11.SQL.Clear;
    MQvehiculos11.SQL.Add('UPDATE vehiculos');
    MQvehiculos11.SQL.Add('SET datos = :adatos');
    MQvehiculos11.SQL.Add('WHERE matriculas = :amatriculas');
    MQvehiculos11.ParamByName('amatriculas').AsString := MQvehiculos['matriculas'];
    MQvehiculos11.ParamByName('adatos').LoadFromFile(aux_fotos, ftblob);
    MQvehiculos11.Execute;
    MQvehiculos11.Close;

Gracias.

Casimiro Notevi 04-12-2014 13:31:23

No puedes aumentar la calidad de una imagen aumentando su tamaño. Al contrario, de esa forma estará perdiendo calidad, porque los pixeles estarán más separados.
Si quieres más calidad, debes tomar la foto más grande, o con mayor calidad, que no tiene nada que ver con el tamaño.

emeritos 05-12-2014 09:51:10

No me explique bien.

Al tomar la foto tiene una calidad o dimensiones 1944x2592 Pixeles con una resolucion de 72 Pixeles/pulgada. Pues bien esta no se puede grabar (da un error) en un campo longblob, ahora si bajo las dimensiones a 500x667 con la misma resolucion entonces si se graba en este campo. Supongo que al bajar al dimensiones baja la calidad de la foto, sino es asi bien venido sea y ya estaria solucionado.

Casimiro Notevi 05-12-2014 10:07:19

En un campo blob se puede guardar "cualquier cosa", si obtienes un mensaje de error al guardar la foto original, tendrás que buscar el problema, simplemente.
Y no estaría mal que dijeras qué error es, porque no somos adivinos ;)

emeritos 05-12-2014 10:39:09

longbolb com jpe, bmp
 
Hola dilferos.
Estoy utilizando Mysql y Delphi 7. Tengo una campo longbolb pero solo puedo grabar en el fivhero *.bmp no me deja (Sale error) grabar por ejemplo los jpg. El error es "Bitmap image is not valid". Creo que es por el objeto DBimage, Puedo utilizar otro paracido que no me de problemas o como lo puedo hacer.

Gracias.

Casimiro Notevi 05-12-2014 12:07:33

He unido los dos hilos porque realmente es el mismo problema.
Saludos.

Casimiro Notevi 05-12-2014 12:08:27

Deberías dar detalles, no somos adivinos, escribe el código que usas para grabar, etc,

emeritos 07-12-2014 19:10:32

Esta mas arriba

Casimiro Notevi 07-12-2014 19:15:35

Ya, esa parte la vi, preguntaba por la base de datos, ¿es un campo blob?, ¿el mensaje de error sale cuando vas a guardar?, porque es extrañísimo que te diga que no es un bitmap válido, ¿acaso él sabe qué tipo de fichero es?. En un blob puedes guardar cualquier cosa y el campo no puede saber qué es, ni falta que le hace.
Por eso te digo que tienes que dar más información.

emeritos 11-12-2014 09:18:18

Me he dado cuenta que grabar se graba bien, pero me di cuenta que el error viene del componente DBImage1 que apunta al campo longblob de una base de datos de mysql, es como si este componente no admitiera mas resolucion o tamaño que el dicho anteriormente. ¿Como lo puedo solucionar manteniento este componente u otro parecido.?

Gracias.

Casimiro Notevi 11-12-2014 10:19:12

Entonces el problema que tienes es que el dbimage, por defecto, muestra bitmap, creo recordar que tiene que añadir a la sección uses, jpeg.
Haz una búsqueda por los foros, se ha tratado en diversas ocasiones.

emeritos 11-12-2014 12:27:17

Añadiso pero sigue sin funcionar.
En el foro me he encontrado que el DBImage no acepta jpg solo bmp y debo instalar la libreria GraphicEx que es gratuita, pero no soy capaz porque solo viene los ficheros .obj y .pas y no me deja. ¿Como puede ser posible?
Gracias.

Casimiro Notevi 11-12-2014 12:35:25

Busca bien, hay muchos ejemplos de cómo puedes ver jpg en el dbimage. No necesitas instalar nada más.

emeritos 12-12-2014 11:18:40

Pues por mucho que busco no veo nada.

Si se me ha ocurrido que en vezs de utilizar un DBimage lo realize con unn Image pero lo que no me sale es la asignacion de este ultimo conn Mysql. Ejemplo:

Si fuese de Bdimane a Image seria:
imgMain.Picture := DBImage1.Picture;

Pero de MySql a Image no me funciona (No se si me falta algo):

imgMain.Picture := MQvehiculos['fotos'];

Gracias

Casimiro Notevi 12-12-2014 11:24:17

Veamos, lo primero de todo, hay que tener claro EXACTAMENTE qué problema tienes, porque en caso contrario vamos dando palos de ciego.
Así que ¿el problema es que no puedes mostrar una imagen jpg en un TImage?



Y recuerda poner los tags al código fuente, ejemplo:



Gracias :)

emeritos 12-12-2014 12:28:26

Despues de muchas vueltas mi problema era el DBImage, no se puede utilizar con un jpg y ademas grandes tamaños aunque en la base de datos Mysql en un campo longblob si. He desistido utilizarlo y ahora estoy utilizando un Timage. Pero no se como asignarle a ese Timage el campo lonblob.

Con un DBImage se hace:
Código Delphi [-]
Timage1.Picture :=DBImage1.Picture;

pero con el campo de Mysql no, he probado es to pero no funciona:

Código Delphi [-]
Timage1.Picture :=MQvehiculos['foto'].Picture;

¿ Como lo puedo hacer? (Tengo ya instalada la libreria GraphicEX)

Gracias.


La franja horaria es GMT +2. Ahora son las 12:42:11.

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