Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Dibujar en PaintBox y convertir a imagen vectorial (https://www.clubdelphi.com/foros/showthread.php?t=73761)

caposar 14-05-2011 23:53:18

Dibujar en PaintBox y convertir a imagen vectorial
 
Estoy haciendo un programa que lee archivos .PLT, que genera autocad y corel y los dibuja sobre un PaintBox. Mi problema es que una vez dibujados si quiero hacer zoom o cambiar el color, tengo que volver a leer el archivo y dibujar de nuevo.
Queria saber si es posible convertirlos en algun tipo de imagen vectorial por ejmplo SVG y asi manipularlas (Cambiar escala, mover la imagen, cambiarle el color de imagen y fondo, y guardarlas en ese formato) uso delphi7.
Desde ya gracias por su respueta.

Ñuño Martínez 16-05-2011 10:05:13

Si puedes leer el archivo PLT, puedes obtener la información de los vectores, ¿no? Pues entonces lo que tienes que hacer es almacenarlos en memoria y luego dibujarlos a partir de ahí.

Neftali [Germán.Estévez] 16-05-2011 10:11:50

Lo suyo sería que almacenaras de alguna manera el fichero en memoria, para no volver a leerlo.
El problemas es que tal vez para tu propósito, el TPaintBox no es el componente más adecuado. No porque no se pueda hacer lo que necesitas, sino porque vas a tener que hacer TODO de forma manual. Existen algunos componentes que te facilitan las operaciones básicas (ZOOM, PAN,...), de esa forma te puedes centrar en el trabajo del dibujado.

caposar 16-05-2011 19:24:17

Dibujar en Paint Box y convertir a imagen vectorial
 
1 Archivos Adjunto(s)
Gracias por la respuesta, pero no se como grabar en memoria.
Les envio el archivo y unos ejemplos para que lo vean y me den su opinion.

Archivo Adjunto 1998

Ñuño Martínez 17-05-2011 10:01:55

Cita:

Empezado por caposar (Mensaje 400192)
Gracias por la respuesta, pero no se como grabar en memoria.

Entonces el problema es que tienes que aprender a manejar datos en memoria, algo que es esencial si se quiere ser bueno en esto.

Te recomiendo que revises tus apuntes, que busques cómo crear variables, listas (ARRAY), registros (RECORD) y demás, y luego mira como leer y escribir archivos de disco (tanto con Assign, Read, Write y demás como con TStreamFile). Cuando termines con esto, seguro que lo tienes mucho más claro.

Si necesitas documentación extra, al final de esta página tienes varios enlaces. Si necesitas más, pregunta. :)

caposar 19-05-2011 21:24:55

Creo que te entendi.
Tendria que almacenar los datos en una variable tipo vector dinamico, y dibujar los datos desde ahi, ya que es mas rapido trabajarlos en memoria que leerlos desde del disco?.
me podrias explicar mejor porque el TPaintBox no es recomendable para graficar las lineas?. Cual seria el componente más adecuado?.

Ñuño Martínez 20-05-2011 11:09:25

Cita:

Empezado por caposar (Mensaje 400694)
Creo que te entendi.
Tendria que almacenar los datos en una variable tipo vector dinamico, y dibujar los datos desde ahi, ya que es mas rapido trabajarlos en memoria que leerlos desde del disco?

Sí, algo así.
Cita:

Empezado por caposar (Mensaje 400694)
me podrias explicar mejor porque el TPaintBox no es recomendable para graficar las lineas?. Cual seria el componente más adecuado?.

TPaintBox es un componente de dibujo muy general y básico. Es decir, que únicamente contiene los métodos esenciales e imprescindibles y no incluye aquellos que implementan funciones muy específicas.

Otros componentes poseen más métodos y facilidades, y los hay que se adaptan a necesidades específicas.

Un ejemplo es la biblioteca Vampyre's Imaging Library, que contiene una colección de clases para la edición general de bitmaps. Es una biblioteca enorme, ya que está diseñada para la transformación de imágenes, no sólo cambios de formato y tamaño sino también conversiones de color, filtros, simulación de materiales, patrones y un largo etcétera. En cierto modo usar esta biblioteca es como incluir el Photoshop/GIMP dentro de tu programa.

Desde que leí tu primer mensaje estoy buscando una biblioteca de la que leí algo hace unos meses y que está diseñada específicamente para el dibujo de gráficos vectoriales, pero no consigo localizarla de nuevo. :( Sigo intentándolo a ver si la localizo. De todas formas, puedes buscar la Vampyre's Imagin Library y echarle un vistazo, por ahora.

caposar 20-05-2011 23:49:14

Les agradesco mucho su ayuda.
Me voy a poner en busca de la libreria Vampyre's Imaging Library, y ver que puedo hacer.
Saludos.


La franja horaria es GMT +2. Ahora son las 21:22:47.

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