Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-05-2012
briast briast is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 50
Poder: 13
briast Va por buen camino
Imagen escala real por pantalla e impresora

Hola. Tengo un problema con las imágenes desde Delphi que no consigo solucionar.
Tengo una imagen de una etiqueta de botella escaneada, supuestamente a escala 1:1 (no la he escaneado yo pero me aseguran que está escaneada directamente sin transformación).
La imagen está a 300ppp y de tamaño 1192 x 1116 píxeles. El tamaño real de la etiqueta es de aproximadamente 10cm ancho por 9,5 cm de alto.
Cuando la cargo de un TImagen sin strecht y con autosize me da un tamaño del componente 650 x 682. Ahí ya se ve que en pantalla que es bastante más grande.
Pero si luego voy e imprimo la imagen por impresora (usando fastreport con su componente de imagen) me sale por impresora casi ocupando un A4.
Lo que quiero hacer es que la imagen vista por pantalla o impresa mantenga el tamaño original que se supone que trae el escaneado.
Supongo que alguna operación no estoy haciendo bien pero no estoy puesto en el tema del tratamiento de imágenes.
Alguien me puede indicar como hacerlo.
Gracias.
Responder Con Cita
  #2  
Antiguo 22-05-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Es que también depende de la configuración de la impresora, puede ser que tenga indicado que escale las imágenes al 100% del tamaño del papel. Fíjate en eso, en la configuración de la impresora.
Responder Con Cita
  #3  
Antiguo 22-05-2012
briast briast is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 50
Poder: 13
briast Va por buen camino
Gracias por la respuesta pero no es eso ya que en la vista previa de fast-report ya sale mal, ocupando casi medio A4 cuando la etiqueta es bastante más pequeña realmente.
La cuestión es que al cargar la imagen claro lo hace pixel a pixel y de ahí el tamaño tan grande. esto es normal porque así funciona la imagen digital, pero luego cuando la quiero imprimir debo hacer algún cálculo con la resolución para impresión (que es de 300ppp) y escalar la imagen para que salga bien, pero esto no se como calcularlo.
Responder Con Cita
  #4  
Antiguo 22-05-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pero si le pones un tamaño fijo y le dices que se ajuste a ese tamaño, entonces debe salir a ese tamaño.
Vaya, tantos tamaños en la misma frase
Responder Con Cita
  #5  
Antiguo 22-05-2012
briast briast is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 50
Poder: 13
briast Va por buen camino
Claro ... precisamente eso es lo que quiero calcular, el tamaño. Si consigo ver con que fórmula calculo el tamaño correcto entonces se imprimirá bien. Eso es lo que no tengo claro como hacer.
Responder Con Cita
  #6  
Antiguo 22-05-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo que vas a tener que hacer varias pruebas hasta encontrar el tamaño adecuado.
Aunque pienso que si lo restringes a un tamaño en el papel, y lo ajustas a ese tamaño, debe salir bien aunque se haya escaneado más grande o más pequeño.
Responder Con Cita
  #7  
Antiguo 22-05-2012
briast briast is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 50
Poder: 13
briast Va por buen camino
El tamaño del hueco en la página lo tengo fijo a 600x700 px. Ahora se trata de meter la imagen ahí sin deformarla y a tamaño real, de forma que si la imagen real resultase más grande que ese hueco, se cortaría lo que sobrase centrándola, si es menor, pues habrá parte blanca alrededor, pero en cualquier caso la imagen pintada debería corresponder con el original real.
No puedo prefijar un valor porque los tamaños de las imágenes que me van a llegar no son fijos sino que pueden variar de unos a otros.
Tengo que buscar una fórmula a partir de la resolución de la imagen y los puntos por pulgada (pienso yo) que me de un tamaño de imagen correcto para que al imprimirse salga bien.
Es lo único que se me ocurre, pues realmente esperaba que saliera bien sin tener que hacer nada.
Responder Con Cita
  #8  
Antiguo 22-05-2012
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Estamos hablando de 3 dispositivos: escaner, pantalla e impresora. Ahí tendrás que pelearte mucho con los dpi (dot per inch al escanear la imagen), ppp (puntos por pulgadas en pantalla) y por último los dpi (calidad de impresión) de la impresora de destino...

En ReportMan, se usaban siempre la unidad "Twip" como medida independiente del dispositivo, así, te permitía trabajar de forma fácil. Mira en FastReport si tiene algo parecido.


Ni que decir tiene que al menos al escanear e imprimir, debes hacerlo con el mismo dpi. Si usas componentes en pantalla, mira si tiene algo de ppp (vendrá como PixelPerInch).

Hay muchas rutinas de conversión entre ppp, dpi y tal... creo las podrás encontrar por twipsToPixels y PixelsToTwips en google

A las malas, otra cosa que se suele hacer es poner una regla (de esas de la escuela) sobre el escaner, de forma que escaneas la imagen y esa regla. Después en el programa tendrías una opción de "calibrar" (donde el usuario marca 2 puntos en la imagen (en 0cm y 10 cm de la regla) y esa distancia te sirve para mostrar la imagen en cm en pantalla y en la impresora.

Nunca te fíes del ancho en pixels, ya que eso varía en pantalla/impresora/scanner.


Suerte y lamento no tener la respuesta exacta, no uso FastReport aún.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #9  
Antiguo 25-05-2012
briast briast is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 50
Poder: 13
briast Va por buen camino
Hola. Gracias por las respuestas.
Al final creo que he dado con la forma de hacerlo. Al menos una que me sirve y creo que es suficiente.
A partir del fichero jpg obtengo los parámetros de altura y anchura de la imagen más la resolución en ppp para X e Y. Esto se obtienen leyendo la cabecera del fichero, así que he tenido que incluir el código para interpretar las cabeceras de ficheros jpg. En concreto para los modos JFIF y EXIF, que son los que me estoy encontrando (desconozco si habrá más modos).
Con esta información procedo de la forma siguiente:
- Obtengo el tamaño real impreso, que se calcula dividiendo la altura y anchura entre los puntos por pulgada. El resultado que obtengo es en pulgadas que paso a cm.
- Con estos datos, calculo el tamaño en píxeles que debe tener la imagen en fastreport usando una constante que proporciona el propio fastreport que nos da la relación entre cm y pixeles.
- Creo un componente de imagen que tenga las dimensiones calculadas anteriormente.
- Así pues, con una imagen en jpg y un componente de imagen con un tamaño fijado, lo que hago es aplicar el strecthdraw para que el jpg tenga el tamaño del componente.

Este resultado, cuando se ve en la vista previa y se imprime coincide perfectamente con el original real.
Un saludo
Responder Con Cita
  #10  
Antiguo 22-08-2012
briast briast is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 50
Poder: 13
briast Va por buen camino
Pues me posteo de nuevo porque no se ha resuelto.
He mejorado la calidad con un algoritmo de redimensionado de imagen mejor que el strechdraw por defecto que trae el bitmap, pero aunque la imagen redimensionada es correcta en tamaño es pobre en calidad.

En Fast Report no veo ninguna opción para indicarle la densidad de impresión. La cuestión es que si yo quisiera imprimir una imagen en fast report pero con calidad, siempre la tendría que perder pues al aplicarse los ppp de pantalla en vez de los de impresión, la imagen sale grande y al reducirla para encajarla pierde toda la calidad.

¿Alguien le ocurre lo mismo con Fast Report?
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Captura de imagen de algo no visible o fuera de la pantalla Gimli Gráficos 2 13-12-2011 13:34:01
Comparar imagen en pantalla con otra imagen gorgori Gráficos 4 24-12-2010 13:17:22
escala de imagen robokop Gráficos 2 30-10-2006 11:53:02
Imagen a pantalla completa. gynch Gráficos 2 16-04-2004 16:46:36
Como manipular los pixeles la matriz de valores en una imagen en escala de grises erocha Gráficos 4 30-11-2003 06:20:32


La franja horaria es GMT +2. Ahora son las 15:13:22.


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
Copyright 1996-2007 Club Delphi