GithubHelp home page GithubHelp logo

python-image-mapper_htmltags's Introduction

Generador de mapas de imágenes (tags de html) automático

Introducción

Cuando pasamos el ratón por encima de una web, en ocasiones se topa con links (URLs) a otras webs. En texto esto es sencillo, pero puede darse la situación de que tengamos una imagen, y dependiendo de dónde clickemos dentro de ella vayamos a una web u otra.

Esto se hace mediante un 'image-map', generado por un programa de edición de imagen (e.g. GIMP > Filters > Image Map). Cuando hemos de crear unos pocos rectángulos o círculos con URLs, esto es fácil de hacer a mano, pero más allá de unos pocos se vuelve una tarea tediosa y time-consuming. Ese es el caso de mapear bocas de switches, en especial en switches con más de 600 bocas (ver el SX6536).

Afortunadamente, las bocas de switches están repartidas de forma regular (aproximadamente, ver la sección de discusión). Por tanto, podemos entender la estructura en la que se reparten en cada switch (número de filas de bocas, columnas de bocas, número de grupos en los que dichas filas y columnas están, etc), y calcular, basándonos en unas posiciones iniciales que nos dicen cómo dar 'saltos', la posición de todas y cada una de las bocas existentes.

El programa

Para llevar a cabo esta tarea he decidido usar Python, por su fácil manejo, y por la posibilidad de usar Jupyter Notebooks, que permiten testear cada parte del código por separado, poco a poco. Aun así, una vez terminado, junté cada pieza en una clase 'mapeador(...)', con sus atributos y métodos necesarios.

La clase es usada para generar los mapeos .map resultantes, instanciando en cada caso (varios switches y dos CPDs) objetos que llevan a cabo la tarea, de forma elegante. Inicialmente sencilla, poco a poco he ido introduciendo más piezas a esta clase, desde particularidades y excepciones hasta opciones (enseñar ciertos outputs o no, empezar a contar bocas desde un número...). Al final ha quedado más complicada de lo que me gustaría, pero lleva a cabo su tarea.

Contenido del repositorio

El repositorio contiene:

  • Carpeta de imágenes imagenes (salvo las dos de los CPDs, por ser información confidencial)
  • Carpeta de mapeos mapeos
  • Carpeta html_mapper del virtual environment necesario
  • Archivo requirements.txt para generar el virtual environment de cero
  • Jupyter Notebook html_tags_generator.ipynb con el programa y los use-cases
  • El presente README.md.

Discusión

La vida, tristemente, no es idílica. Las imágenes de los switches no son perfectas milímetro a milímetro, y las capturas de los rectángulos/círculos iniciales es aun más imperfecta. Por ello, aunque el programa es de gran ayuda, no es la panacea, al final siempre me han hecho falta algunos retoques manuales (ligeros).

python-image-mapper_htmltags's People

Contributors

goznalo-git avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.