Últimas noticias
Loading...
miércoles, 28 de febrero de 2007

Google Maps (III)

Crear imágenes para las flechas de dirección

Las flechas de dirección que hemos puesto sobre el mapa, son un conjunto de imágenes cuya rotación varia en 3º a la derecha. La creación de estas imágenes nos llevaría mucho tiempo, pero, por suerte, existen programas como el Photoshop que permiten automatizar tareas con programación en Visual Basic.

Para este caso, he utilizado las librerías que ofrece Photoshop CS2, pero supongo que la sintaxis es muy parecida en versiones anteriores. La especificación de los objetos la podéis encontrar en la web de Adobe. También se podría haber hecho algo parecido con CorelDraw o AutoCad.

Se podría utilizar cualquier programa que admita la programación VBA, en mi caso utilicé Microsoft Excel porque era lo que tenía más a mano. Simplemente creo un botón y le asigno el siguiente código:


Public Sub generaImagen()
Dim appRef, doc, opciones

Set appRef = CreateObject("Photoshop.Application")


Set opciones = CreateObject("Photoshop.ExportOptionsSaveForWeb")
opciones.PNG8 = False
opciones.Format = psPNGSave

For i = 1 To 119
doc = "C:\dir\dir_0.psd"
appRef.Open doc
appRef.ActiveDocument.ActiveLayer.Rotate (i * 3), psMiddleCenter ' Rotar 3º con bloqueo en el centro
appRef.ActiveDocument.Export "C:\dir\dir_" & (i * 3) & ".png", psSaveForWeb, opciones
appRef.ActiveDocument.Close psDoNotSaveChanges
Next

Set opciones = Nothing
Set appRef = Nothing
End Sub

Además es muy importante añadir las referencias a las bibliotecas de Photoshop. Para ello accedo al menú Herramientas, Referencias desde el editor de código y selecciono:
  • Adobe Photoshop 9.0 Object Library.
En este caso se crearán imagenes png de 24 bits a partir de una imagen en formato Photoshop (PSD) dir_0.psd. Las imágenes se irán nombrando como dir_XX.png, siendo XX el grado de rotación hasta llegar a 357.



6 comentarios:

LughUy dijo...

La verdad muy bueno, quería consultarte donde puedo ver el ejemplo funcionando para poder entenderlo mejor.

Martin Alejandro Nigro dijo...

Hola, respondes preguntas del blog?

Pablo Barrachina dijo...

Hola Martín, lo intento, pero voy muy mal de tiempo. Pregunta y trataré de contestarte.
Aprovechando, a Luis no le he podido contestar porque la web donde tenía el ejemplo ya no está operativa.

Martin Alejandro Nigro dijo...

ok, mi consulta es para con el codigo de automatizacion de una accion del photoshop... instale el photoshop cs2, agregue la libreria al proyecto(trabajo con visual studio 2005) hice referencia a la libreria, el problema me surge al crear el objeto appref = CreateObject("photoshop.Application") esto abre el photoshop pero al de manera siguiente me dice que no puede crear el objeto Activex, a que se puede deber este aviso? desde ya muchas gracias

Martin Alejandro Nigro dijo...

Solucionado, era una cuestion de permisos del sistema operativo...

Pablo Barrachina dijo...

Lo siento, voy muy liado, además estuve la semana pasada sin internet. Me alegro que lo hayas solucionado.

Quick Message
Press Esc to close
Copyright © 2013 Apaga y vámonos All Right Reserved