Ik heb vorige week een simpel proggie geschreven dat bitmapjes converteert naar HTML Art (wat een naam he ). Ik ben benieuwd wat jullie Fokkers ervan vinden. Als voorbeeld heb ik het Fok! logo even geconverteerd: www.hopla.com/leon/fokzine.htm. En ook www.hopla.com/leon/.
Het proggie release ik waarschijnlijk deze week inclusief broncode (Delphi). Ik ben nog wat aan het sleutelen met de Grafische User Interface (conversie-routine geschreven in 10 minuten, met GUI al drie dagen bezig )
alleen beetje veel getyp om dat zelf te doen
(idee van die foto collage's ??)
Wou het ook ooit eens gaan maken, maar ben er nooit aan toe gekomen
En ja, alle letters zijn even breed als je maar als font "Courier" kiest
Inderdaad een applausje!!
quote:
Op 31 juli 2000 02:00 schreef Aaargh! het volgende:
.... dit kan ook met een plugin voor The Gimp
Ja, ik dacht al dat er al een proggie zou zijn die dat kon. Ik heb het idee nl. van een plaatje van Tux (de LINUX pinguin). Deze was op dezelfde manier bewerkt. Een zoektocht naar software waarmee ik mijn eigen plaatjes zo zou kunnen bewerken leverde niet echt wat op. Toen heb ik gewoon zelf zoiets geschreven.
Het algoritme is ook gewoon echt heel simpel Voor iedere pixel in het origineel stop je een character in het HTML bestand. De kleur van de pixel vertaal je naar een HTML-kleurcode en die stop je in een FONT-tag, die op zijn beurt weer om de character heen gezet wordt. Heb je meerdere pixels met dezelfde kleur achter elkaar staan, dan zet je ze samen in een FONT-tag.
Wat betreft die font-grootte; je moet voor een goed eindresultaat een niet-proportioneel font (zoals Courier New) gebruiken.
Ook moet je eigenlijk het bronplaatje resizen met een andere lengte-breedte verhouding, want cirkels worden ovalen in HTML Art.
In ieder geval bedankt voor jullie reacties
quote:
Op 31 juli 2000 13:55 schreef MacBeth het volgende:
Hmm, bij nader inzien, je hoeft maar 1 kant op te transformeren... Dus de vraag moet zijn: gebruik je bipixel filtering?![]()
![]()
Nee, ik heb er wel over gedacht aan mijn programma een resize-functie toe te voegen, maar dat kost mij alleen maar meer werk Bovendien hangt het uiteindelijke resultaat heel erg af van de gebruikte HTML renderer (browser) en van de fonts.
Ik gebruik zelf Paint Shop Pro voor het bewerken van de bronplaatjes. Dit programma gebruikt een combinatie van twee resize-technieken. Meestal resize ik het plaatje naar 190x100 pixels en reduceer de kleuren naar max. 256. Dit levert goede resultaten op bij een resolutie van 1024x768.
Het enige wat mijn programma doet is het 1 op 1 converteren van bitmap/jpeg naar een HTML bestand.
quote:
Op 31 juli 2000 16:54 schreef Aaargh! het volgende:
Zou je het programma kunnen aanpassen zodat hij output maakt zoals hier... dat zou helemaal kick-ass zijn!
Leuk om zo je hele HTML pagina op te bouwen, dus alles bestaande uit pure HTML. Krijg je wel pagina's van enkele MB's, but who cares
Ik wil dat proggie hebben dus
HEEL graag
quote:
Op 31 juli 2000 14:36 schreef lzandman het volgende:
Nee, ik heb er wel over gedacht aan mijn programma een resize-functie toe te voegen, maar dat kost mij alleen maar meer werk![]()
Is niet zo moeilijk.... Hier een voorbeeldje van transformatie met bilinear filtering.
Moet er (in c-pseudo code) ongeveer zo uitzien, uitgaande van de 190*100 die jij wil en Breedte*Hoogte als bron. Met int32 bedoel ik een 32-bits integer (voor je RGB kleurtjes, plus 8 bits voor als je nog wat anders wil (bv hoogtekaart)).
------------------------------------------------------------------------------------------
int32* src = new int32[Breedte * Hoogte]; // bron (source) buffer
LoadImage(src); // laad je plaatje, functie schrijf je maar zelf
int32* dest = new int32[190*100]; // bestemming (destination) buffer
for(j = 0; j < 100; j++)
{
double dy = j / 100 * Hoogte;
double row1 = dy - double(int(dy));
double row2 = 1 - dy;
for(i = 0; i < 190; i++)
{
double dx = i / 190 * Breedte;
double colom1 = dx - double(int(dx));
double colom2 = 1 - dx;
int pos = int(dx) + int(dy) * Breedte;
/* Hieronder de bilinear filtering. LET OP, ik doe net alsof het zwartwit is, maar je zult dit natuurlijk voor ieder kleurcomponent (RGB) moeten doen */
*(dest + i + j * 190) =
*(src + pos) * colom1 * row1 +
*(src + pos + 1) * colom2 * row1 +
*(src + pos + Breedte) * colom1 * row2 +
*(src + pos + Breedte + 1) * colom2 * row2;
}
}
delete[] src; // geheugen opruimen
delete[] dest;
------------------------------------------------------------------------------------------
Ik schrif dit on the fly, niet rechtstreeks door de compiler halen dus , maar het zou je een aardig idee moeten geven van hoe transformeren met bilinear filtering werkt... Je kan trouwens ook een andere vorm van interpolatie gebruiken (hier gebruik ik lineare interpolatie), maar dan wordt 't nog moeilijker...
EDIT: Shit, code-tags doen 't niet meer in 't nieuwe forum
quote:
Op 31 juli 2000 21:20 schreef MacBeth het volgende:
Is niet zo moeilijk.... Hier een voorbeeldje van transformatie met bilinear filtering.
Ik zie wel of ik het erin stop. En anders mag iemand anders het wel doen. Binnenkort is de broncode ook beschikbaar (eerst even een beetje opschonen).
Ik heb net het idee van Aaargh! er ook ingestopt. Het is nu mogelijk om images te converteren naar HTML tables. Bedankt Aaargh!
Attentie: Versie 0.4 van het proggie is te downloaden op www.hopla.com/leon/htmlartist.zip of members.home.nl/lzandman/HTMLArtist.zip. Kijk maar wat jullie ervan vinden.
Ik heb echter wel een paar beperkingen in de conversieroutines gestopt, zodat deze versie nog niet al te bruikbaar is. Maar over een paar dagen gooi ik die er ook wel uit
Groeten,
Leon Zandman
[Dit bericht is gewijzigd door lzandman op 31-07-2000 23:35]
Die HMTL-tabelletjes als plaatjes zijn grappig, maar je schiet je doel totaal voorbij; plaatjes nemen erdoor veel meer ruimte in dan nodig.
quote:
Op 01 augustus 2000 18:42 schreef MacBeth het volgende:
Die HMTL-tabelletjes als plaatjes zijn grappig, maar je schiet je doel totaal voorbij; plaatjes nemen erdoor veel meer ruimte in dan nodig.
|
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |