-
Notifications
You must be signed in to change notification settings - Fork 0
webgebaseerde ontwerptool voor DRIP-teksten (webbased design tool for VMS texts; Dutch)
License
jaspervries/webdripdesigner
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
======================================================================== WebDRIP Designer README ======================================================================== De WebDRIP Designer is een webgebaseerde ontwerptool voor DRIP-teksten. Er is ondersteuning voor de meest voorkomende typen beeldstanden met een pictogram en een of meerdere tekstregels, welke voldoen aan de "Richtlijn informatievoorziening op dynamische informatiepanelen" van CROW (artikelnummer D1073). De functionaliteit is gebaseerd op de BermDRIP Designer van Rijkswaterstaat en kent vele nieuwe mogelijkheden. ======================================================================== 0. Inhoudsopgave ======================================================================== 1. Systeemvereisten en benodigdheden 2. Voorbereiding 2.1 Lettertypen 2.2 Pictogrammen 2.3 Regelsymbolen 2.4 Spritetabel genereren 2.5 FAQ 3. Installatie 4. Genereren van release 5. API functionaliteit 6. Licentie 6.1 imagebmp + imagecreatefrombmp 7. Verkrijgen van de broncode ======================================================================== 1. Systeemvereisten en benodigdheden ======================================================================== Voor de basisfunctionaliteit is een recente webbrowser met ondersteuning voor HTML5 nodig. Primaire ontwikkeling vindt plaats voor Mozilla Firefox en releases worden getest in Chromium. Voor de historie- en downloadfunctie is een webserver met PHP (5.3+) en MySQL (5+) of MariaDB (5+) nodig. Daarnaast wordt PHP gebruikt voor het genereren van de spritesheet en het samenstellen van een release. Voor het samenstellen van een release wordt optioneel gebruik gemaakt van JShrink. Voor een basisversie zonder historie- en downloadfunctie is op dit moment eveneens PHP noodzakelijk, omdat enkele HTML-onderdelen in een loop worden gegerereerd. Het is echter relatief eenvoudig om dit om te zetten naar puur HTML. URLs: Mozilla Firefox: https://www.mozilla.org/firefox Chromium: https://www.chromium.org Chromium (Windows build): http://chromium.woolyss.com PHP: http://php.net MySQL: https://www.mysql.com MariaDB: https://mariadb.org JShrink: https://github.com/tedious/JShrink (gebundeld) Rangy Inputs: https://github.com/timdown/rangyinputs (gebundeld) Bitmap Font Maker: http://xbox.create.msdn.com/en-US/education/catalog/utility/bitmap_font_maker imagebmp + imagecreatefrombmp: http://www.phpclasses.org/package/5991-PHP-Load-and-save-images-in-the-BMP-format.html (gebundeld) ======================================================================== 2. Voorbereiding ======================================================================== Vanwege auteursrecht bevat de broncode van de WebDRIP Designer geen lettertypen, pictogrammen en regelsymbolen. Deze dienen te worden gedownload van de website van CROW en te worden voorbereid voor gebruik met de WebDRIP Designer. De lettertypen, pictogrammen en regelsymbolen behorend bij uitgave D1073 zijn gratis te downloaden via http://www.crow.nl/publicaties/richtlijn-informatievoorziening-op-dynamische-info --------------- 2.1 Lettertypen --------------- Gebruik Bitmap Font Maker (ttf2bmp) om spritesheets te genereren van de lettertypen. Converteer de gegenereerde bitmaps naar PNG-formaat. Gebruik de volgende instellingen: - Font style: regular - Outline size: 0 - Shadow offset: 0 - Min char: 0x20 - Max char: 0xFF - Antialiased: uitgeschakeld Lettertype | Puntgrootte | Uitvoerbestand ----------------|-------------|---------------- CdmsBdType1.ttf | 18 pt | CdmsBdType1.png CdmsBdType2.ttf | 15 pt | CdmsBdType2.png CdmsBdType3.ttf | 11 pt | CdmsBdType3.png CdmsBdType3.ttf | 11 pt | CdmsBdType3Yellow.png * Sla de uitvoerbestanden op in resources/fonts/. De namen van de PNG- bestanden worden gebruikt als identifiers, dus dienen geen spaties of speciale tekens te bevatten. *) Is identiek aan CdmsBdType3.png, maar dan met de witte letters geel (RGB 255,255,0) gemaakt (in een grafisch programma naar keuze). ---------------- 2.2 Pictogrammen ---------------- Converteer de pictogrammen naar PNG formaat en sla deze per grootte op in een submap van resources/images/. De namen van de submappen worden gebruikt als identifiers voor de pictogramgrootte, dus dienen geen spaties of speciale tekens te bevatten. De namen van de pictogrammen dienen een underscore te bevatten. Het deel voor de underscore wordt gebruikt als identifier voor het pictogramen. Deze idenitifier dient uniek te zijn voor de pictogrammen van dezelfde grootte (alle bestanden in dezelfde map hebben een andere identifier). De identifier is bij voorkeur uniform over de verschillende groottes van pictogrammen (in alle mappen wordt dezelfde identifier gebruikt voor hetzelfde verkeersbord). Hierdoor kunnen pictogrammen worden behouden bij het wisselen van templates. Zie het bestand resources/names.php voor de standaardidentifiers van WebDRIP Designer. Wanneer een andere naamgeving wordt gebruikt, verdient het de aanbeveling dit bestand aan te passen en/of uit te breiden. De hier opgegeven omschrijvingen worden getoond als tooltip van het betreffende pictogram in de interface. Het deel na de underscore dient als omschrijving en wordt niet door het programma gebruikt. De standaard mapnamen zijn: - resources/images/Picto_40/ - resources/images/Picto_44/ - resources/images/Picto_48/ - resources/images/Picto_60/ - resources/images/Picto_70/ - resources/images/Picto_92/ Voorbeeld van bestanden in iedere bovengenoemde map: - J33_file.png - J34_ongeval.png - J35_slechtzicht.png - RJ16_werk.png - RJ33_file.png - ... Bestanden met dezelfde identifier binnen een map worden overschreven, bijvoorbeeld J33_file.png en J33_file2.png levert maar één pictogram op. ----------------- 2.3 Regelsymbolen ----------------- Converteer de regelpictogrammen naar PNG formaat en sla deze per grootte op in een submap van resources/symbols/. De namen van de submappen worden gebruikt als identifiers, dus dienen geen spaties of speciale tekens te bevatten. De namen van de regelsymbolen dienen twee underscores te bevatten. Het deel voor de eerste underscore is aanwezig om historische redenen en werd gebruikt om de grootte van het regelsymbool aan te geven. Het programma gebruikt de mapnaam als identifier voor de grootte van de regelsymbolen. Het gedeelte tussen de twee underscores wordt gebruikt als identifier voor het regelsymbool. Deze idenitifier dient uniek te zijn voor de regelsymbolen van dezelfde grootte (alle bestanden in dezelfde map hebben een andere identifier). De identifier is bij voorkeur uniform over de verschillende groottes van regelsymbolen (in alle mappen wordt dezelfde identifier gebruikt voor hetzelfde symbool). Hierdoor kunnen symbolen worden behouden bij wisselen tussen (tekst)groottes. De identifier bestaat uit exact drie cijfers. Dit is tevens het getal wat de gebruiker ziet na een dollarteken in de invoer- regels (bijvoorbeeld $036). Zie het bestand resources/names.php voor de standaardidentifiers van WebDRIP Designer. Wanneer een andere nummering wordt gebruikt, verdient het de aanbeveling dit bestand aan te passen en/of uit te breiden. De hier opgegeven omschrijvingen worden getoond als tooltip van het betreffende symbool in de interface. Het deel na de tweede underscore dient als omschrijving en wordt niet door het programma gebruikt. De standaard mapnamen zijn: - resources/symbols/Regel_15/ - resources/symbols/Regel_15_geel/ - resources/symbols/Regel_19/ - resources/symbols/Regel_22/ Voorbeeld van bestanden in iedere bovengenoemde map: - 19_030_pijl_op.png - 19_031_pijl_links.png - 19_032_pijl_rechts.png - 19_100_file.png - 19_110_ongeval.png - ... Bestanden met dezelfde identifier binnen een map worden overschreven, bijvoorbeeld 19_041_Centrico_op.png en 19_041_Centrico_op_nieuw.png levert maar één pictogram op. ------------------------- 2.4 Spritetabel genereren ------------------------- Voor lokaal testen vanuit de repository directory dient eerst een spritetabel gegenereerd te worden. Voer hiervoor het script resources/generatespritesheet.php uit vanuit een opdrachtregel: php -f generatespritesheet.php De spritetabel wordt in de vorm van een PNG-afbeelding (sprites.png) en JavaScript bestand (sprites.js) naar de root van het repository geschreven. De spritetabel wordt automatisch gegenereerd bij het genereren van een release (zie hoofdstuk 4) en hoeft in dat geval niet apart uitgevoerd te worden. ------- 2.5 FAQ ------- Q: Waarom heb je niet gemaakt dat de BMP-afbeeldingen direct worden ingelezen? A: GD heeft geen ondersteuning voor BMP-afbeeldingen. Vrij beschikbare externe bibliotheken blijken nogal moeite te hebben met het correct inlezen van BMP-afbeeldingen in bepaalde bitdiepten. Aangezien het converteren naar PNG een eenmalige actie is en in batch kan worden uitgevoerd door de betere grafische pakketten is besloten geen tijd te investeren in een geautomatiseerde oplossing. Q: Waarom moet ik alle bestandsnamen van de CROW-download hernoemen? A: De CROW-download bestond nog niet toen met ontwikkeling van de WebDRIP Designer is gestart. Daarnaast beschikken niet alle bestandsnamen in de download over geschikte unieke identifiers. Q: Je hebt alle lettertypen en pictogrammen al eens geconverteerd, waarom worden deze niet gewoon bijgeleverd? A: Bij de CROW-download is geen toestemming verleend om deze verder te verspreiden, al dan niet in afgeleide vorm. Hierdoor blijft de auteurswet van toepassing. ======================================================================== 3. Installatie ======================================================================== Om gebruik te maken van de historie- en downloadfunctie is installatie vereist. De installatie maakt de databasetabellen en mappenstructuur hiervoor aan. Voer install.php uit vanuit een opdrachtregel. Als er nog geen configuratiebestand aanwezig is, wordt dit aangemaakt. Open dit met een teksteditor en vul de juiste databasecredentials is. Voer hierna install.php nogmaals uit om de databasetabellen en mappenstructuur aan te maken. De WebDRIP Designer kan nu gebruikt worden vanuit het working repository. Met beperkte aanpassingen is het mogelijk om de WebDRIP Designer zonder historiefunctie en dus zonder database te gebruiken. ======================================================================== 4. Genereren van release ======================================================================== Voor het gebruik in een productieomgeving wordt aanbevolen een release te genereren. Hierbij worden enkele optimalisaties uitgevoerd en enkel de noodzakelijke bestanden bij elkaar gezet. Voor een optimale release wordt JShrink gebruikt om de JavaScript bestanden te minimaliseren. Voer release.php uit vanuit een opdrachtregel om een release te genereren. Standaard wordt hiervoor een map release/ aangemaakt in de root van het repository. De inhoud van deze map is gereed voor gebruik op de productieomgeving. Op de productieomgeving dient dan nog wel install.php uitgevoerd te worden. Zie hiervoor het vorige hoofdstuk. Het script release.php maakt gebruik van git om de actuele hash op te vragen. Hiervoor moet git via de opdrachtregel beschikbaar zijn. ======================================================================== 5. API functionaliteit ======================================================================== De WebDRIP Designer is voorzien van API functionaliteit om de WebDRIP Designer aan te roepen vanuit andere programma's. In plaats van de gemaakte beeldstand ter download aan te bieden wordt de gebruiker teruggestuurd naar het programma die de WebDRIP Designer heeft aangeroepen. Dit programma handelt vervolgens de verwerking van de gegenereerde afbeelding af. Via de API kunnen alleen beeldstanden in PNG-formaat worden verkregen. Aanroep: Roep de WebDRIP Designer aan via de normale URL, met toevoeging van de parameter "return_url" aan de querystring. De waarde van de parameter is de URL waar de bezoeker naar toegestuurd moet worden wanneer de beeldstand klaar is. De waarde van de parameter is URL-encoded. Terugkeer: Wanneer de bezoeker op de OK-knop klikt (ter vervanging van de Download- knop), wordt de doorgestuurd naar de pagina die is opgegeven als "return_url". Hierbij wordt de parameter "image" aan de querystring toegevoegd met als waarde de MD5-hash van de gemaakte beeldstand. Deze afbeelding kan vervolgens als PNG-bestand worden opgehaald uit /store/<n>/<md5>.png waarin: <n>: het eerste teken van de MD5-hash uit de teruggegeven parameter. <md5>: de MD5-hash uit de teruggegeven parameter. Bestaande afbeelding bewerken: Als de teruggegeven MD5-hash wordt bewaard, kan deze worden gebruikt om eerder gemaakte beeldstanden te bewerken. Voeg hiertoe de parameter "md5" toe aan de querystring bij de aanroep, met als waarde de MD5-hash. De bewerkbare beeldstand wordt dan automatisch ingeladen bij het openen van de pagina. Template (klasse) selecteren: Bij het aanroepen van de WebDRIP Designer kan via de querystring worden aangegeven welk template (eigenlijk template klasse) bij het openen van de pagina automatisch geselecteerd. Voeg hiervoor de parameter "template" toe aan de URL en geef als waarde de naam van de template klasse. Dit zijn dezelfde namen als in de eerste template-dropdown in de interface. Wanneer de opgegeven naam niet wordt aangetroffen, wordt de eerste klasse uit de lijst geselecteerd. Deze functionaliteit is ook beschikbaar wanneer geen gebruik wordt gemaakt van de overige API-functionaliteit. ======================================================================== 6. Licentie ======================================================================== Omdat veel partijen inmiddels afhankelijk zijn van de WebDRIP Designer voor hun werkzaamheden, is de broncode vrijgegeven als open source software. Hiermee is geborgd dat iedereen de WebDRIP Designer kan blijven gebruiken, mocht de door de auteur beheerder versie op http://wdd.s200.nl wegvallen. Eenieder die de broncode van de WebDRIP Designer gebruikt voor meer dan testdoeleinden wordt vriendelijk gevraagd dat via jasper@s200.nl kenbaar te maken. De WebDRIP Designer is vrijgegeven onder de GNU General Public License versie 3. Dit geeft iedereen het recht om de software te gebruiken en te kunnen beschikken over de broncode. Het maken van aanpassingen is eveneens toegestaan, zolang auteursrechtvermeldingen intact blijven, en vallen automatisch onder dezelfde licentievoorwaarden. Gebruikers van een aangepaste versie hebben daardoor ook het recht om te beschikken over de broncode van de aangepaste versie. Voor meer informatie zie de volledige licentietekst in license.txt. WebDRIP Designer - webgebaseerde ontwerptool voor DRIP-teksten Copyright (C) 2013-2023 Jasper Vries WebDRIP Designer is free software: you can redistribute it and/or modify it under the terms of version 3 of the GNU General Public License as published by the Free Software Foundation. WebDRIP Designer is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with WebDRIP Designer. If not, see <http://www.gnu.org/licenses/>. --------------------------------- 6.1 imagebmp + imagecreatefrombmp --------------------------------- WebDRIP Designer maakt gebruik van de PHP klasse "imagebmp + imagecreatefrombmp" door "de77" voor het genereren van bitmapafbeeldingen. Deze klasse is vrijgegeven onder de MIT licentie en is gebundeld met de broncode van de WebDRIP Designer als BMP.php. Voor de oorspronkelijke bron van "imagebmp + imagecreatefrombmp" zie: http://www.phpclasses.org/package/5991-PHP-Load-and-save-images-in-the-BMP-format.html ======================================================================== 7. Verkrijgen van de broncode ======================================================================== De broncode van de WebDRIP Designer is gepubliceerd op Bitbucket. https://bitbucket.org/jaspervries/webdripdesigner
About
webgebaseerde ontwerptool voor DRIP-teksten (webbased design tool for VMS texts; Dutch)
Topics
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published