/ Forside / Teknologi / Udvikling / HTML / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
HTML
#NavnPoint
molokyle 11184
Klaudi 5506
bentjuul 3377
severino 2040
smorch 1950
strarup 1525
natmaden 1396
scootergr.. 1320
e.c 1150
10  miritdk 1110
Skalere SVG billede? (sikkert trivielt sps~
Fra : Lasse Hillerøe Peter~


Dato : 16-08-07 22:21

Det er efterhånden mange år siden jeg har rodet med HTML, og jeg er aldrig
rigtigt kommet ind i CSS og XHTML og den slags, så undskyld hvis dette er
et tosset eller trivielt spørgsmål.

Men jeg ville altså lige lave en html-side hvor jeg kunne få et overblik
over nogle tegninger jeg lavede som SVG med Inkscape. Naiv som jeg jo er,
prøvede jeg med en <img>, men fandt ud af at svg-billeder ikke regnes for
billeder, og derfor skal inkluderes med <object>.

<object data="tegning1.svg" type="image/svg+xml" width="100">

Men min fuldside tegning blev ikke som forventet (hvis det fx havde været
et img) skaleret ned til en bredde på 100, i stedet fik jeg en "frame",
med scrollbars, hvori jeg så kunne scrolle rundt på hele tegningen. Ikke
det jeg ville have, eller forventede.

HTML 4.01 specifikationen siger i 13.7.1 om width for <object> at:
"When the object is an image, it is scaled."

Nå, det er det altså bare ikke alligevel, lader det til. Der står
selvfølgelig også at width og height er "deprecated" til fordel for style
sheets.

Så er det bare at min viden ikke lige slår til, og jeg vil ikke lige læse
en milliard stylesheet bøger (lige nu - jeg lover, jeg skal nok senere)
for at få løst hvad der burde være et trivielt problem.

Så hvad skriver jeg i min HTML fil (jeg går ud fra at jeg ikke _behøver_
at lave CSSen i sin egen fil) for at få skaleret mit SVG billede, ligesom
hvis det var et <img>? Jeg formoder jeg skal have en style="..." attribut
på mit <object> element?

Er der en venlig sjæl som vil forbarme sig over mig?

-Lasse

 
 
Rune Jensen (17-08-2007)
Kommentar
Fra : Rune Jensen


Dato : 17-08-07 06:03

"Lasse Hillerøe Petersen" skrev i en meddelelse...

> Så hvad skriver jeg i min HTML fil (jeg går ud fra at jeg ikke _behøver_
> at lave CSSen i sin egen fil) for at få skaleret mit SVG billede,

Vil nok være en god idé på længere sigt, hvis der er mange objekter, at
lægge styles i en selvstændig fil.

> ligesom
> hvis det var et <img>? Jeg formoder jeg skal have en style="..." attribut
> på mit <object> element?

Prøv:
<object data="tegning1.svg" type="image/svg+xml" style="width: 100px;
height: 100px;">

Det er inline style, og fylder måske for meget ved mange objekter. Men kan
gå som forsøg. Width er bredde, og height er højde, som også kan sættes i
pt, em og %, samt et par andre. Det kræver dog øvelse, hvis man skal bruge
andet en px.

> Er der en venlig sjæl som vil forbarme sig over mig?

Har ikke erfaring med Object, men formoder, ovenstående vil virke. Men iflg.
http://www.w3schools.com/tags/tag_object.asp så virker width="100" og
height="100" (altså som HTML attributter) også på object i både strict,
transitional og frame Doc type.

En helt anden, og måske bedre indgangsvinkel, er at bruge et
billedbehandlingsprogram til at konvertere til JPEG eller PNG (evt. GIF). Så
kan du bruge <img>, hvilket synes lidt lettere at have med at gøre. Det
kommer så an på udgangspunktet af dine billedfiler (hvor meget de er presset
ned), om resultatet vil blive godt.


MVH
Rune Jensen



Rune Jensen (17-08-2007)
Kommentar
Fra : Rune Jensen


Dato : 17-08-07 06:12

"Lasse Hillerøe Petersen" skrev i en meddelelse...

> <object data="tegning1.svg" type="image/svg+xml" width="100">

Width="100" angiver, at bredden skal være 100 pixels. Måske derfor, billedet
er for lille? Du bør også angive højde på object, height="højde i px".

Normalt finder jeg eksakt højde/bredde ved at finde tegning i stifinder,
højreklikke og vælge egenskaber (og dokumentinfo, ved Windows XP). Ved ikke,
om det virker med SVG.


MVH
Rune Jensen



Chr. Bohr-Halling (17-08-2007)
Kommentar
Fra : Chr. Bohr-Halling


Dato : 17-08-07 10:51

Den 16.08.2007 kl. 23:21 skrev Lasse Hillerøe Petersen <lhp@toft-hp.dk>:

> <object data="tegning1.svg" type="image/svg+xml" width="100">
>
> Men min fuldside tegning blev ikke som forventet (hvis det fx havde været
> et img) skaleret ned til en bredde på 100, i stedet fik jeg en "frame",

Prøv at se på koden til <http://opera.softwolves.dk/O.o>. Der virker
højde/bredde-angivelserne fint, så vidt jeg husker.

Hvis størrelsen kun er relevant i en helt lokal fremvisningssituation, kan
du i Opera højreklikke på SVG'en og zoome.


--
Sendt med Operas banebrydende postklient:
http://www.opera.com/mail/

Rune Jensen (17-08-2007)
Kommentar
Fra : Rune Jensen


Dato : 17-08-07 16:03

"Chr. Bohr-Halling" skrev i en meddelelse...

> Prøv at se på koden til <http://opera.softwolves.dk/O.o>. Der virker
> højde/bredde-angivelserne fint, så vidt jeg husker.

Mjah, størrelsen er i hvert fald mere end de 100px

Men virker så ikke uden SVG-understøttelse, hvilket min IE ikke har, så jeg
kan ikke se selve indholdet, kun rammen. Og jeg synes stadig, det er lidt at
skyde gråspurve med kaniner(!) at fremvise tegninger med en avanceret
plugin, når man kunne gøre det mere tilgængeligt for brugeren, og lettere at
implementere, ved at konvertere til JPEG, PNG, GIF...? Det er ikke en
"film", som skal vises, eller...? Kunne jo være, jeg havde misforstået et
eller andet.

MVH
Rune JEnsen



Lasse Hillerøe Peter~ (17-08-2007)
Kommentar
Fra : Lasse Hillerøe Peter~


Dato : 17-08-07 20:05

In article <46c5b89c$0$4175$456a7185@news.cirque.dk>, "Rune Jensen"
<runeofdenmark@hotmail.com> wrote:

> "Chr. Bohr-Halling" skrev i en meddelelse...
>
> > Prøv at se på koden til <http://opera.softwolves.dk/O.o>. Der virker
> > højde/bredde-angivelserne fint, så vidt jeg husker.
>
> Mjah, størrelsen er i hvert fald mere end de 100px

Ja, men størrelsen af billedet er 250x100 hvis document properties fra
Inkscape står til troende. Men det kan nu heller ikke passe. For indholdet
er reelt meget bredere, ser det ud til. Og det bliver vist i en kasse på
750x276.

> Men virker så ikke uden SVG-understøttelse, hvilket min IE ikke har, så jeg
> kan ikke se selve indholdet, kun rammen. Og jeg synes stadig, det er lidt at
> skyde gråspurve med kaniner(!) at fremvise tegninger med en avanceret
> plugin, når man kunne gøre det mere tilgængeligt for brugeren, og lettere at
> implementere, ved at konvertere til JPEG, PNG, GIF...? Det er ikke en
> "film", som skal vises, eller...? Kunne jo være, jeg havde misforstået et
> eller andet.

Jeg var ved at lave et sæt af tegninger, som jeg gerne ville have skal
harmonere, dvs jeg vil gerne kunne se dem (formindsket) ved siden af
hinanden, og det tænkte jeg en hurtig simpel webside ville være fint til.
Havde det været JPGs ville det have været trivielt, men nu er det altså
SVG jeg laver i Inkscape.

At skulle gemme dem som JPG hver gang jeg lige vil kigge på dem, bare for
at Seamonkey kan skalere dem korrekt, virker tosset, især når det er
*SCALABLE* vector graphics.

Men det lader desværre til at style heller ikke hjælper. Selv når jeg
sætter width og height med style attributten, bliver det bare en ramme med
den givne bredde, og så scrollbars. Jeg har også prøvet med et lillebitte
svg-billede, for at se om det blev skaleret op, og det sker heller ikke,
der er bare en masse hvidt.

Måske er det i virkeligheden mine SVG-filer der er noget galt med?

Det jeg er ude efter er en måde at få SVG i et <object> element til at
opføre sig ligesom almindelige gammeldags GIF eller JPG i et <img>
element. Altså strække/skrumpe billedet til de angivne dimensioner. Som
jeg læser HTML spec'en er det også det der burde ske, men hvad ved jeg.
Jeg tror jeg gir op og finder på noget andet, med mindre nogen når at
komme med den "rigtige" løsning.

Tak for svarene!

-Lasse

Allan Vebel (17-08-2007)
Kommentar
Fra : Allan Vebel


Dato : 17-08-07 22:07

Lasse Hillerøe Petersen skrev:

> Jeg tror jeg gir op og finder på noget andet,
> medmindre nogen når at komme med den
> "rigtige" løsning.

Mit bud er også at du skal konvertere de enkelte
filer til gif eller png i præsis den størrelse de skal
bruges på siden.

Enkelte browsere understøtter svg-formatet, mens
andre skal have et plugin installeret, og det er de
færreste der gider sådan noget.

I da er et Flash-plugin almindeligt for de fleste, men
for nogle år siden sprang brugeren bare sådan en
side over, eller gik i hvert fald glip af billederne.

Det er endnu ikke almindeligt med et svg-plugin, så
skal du vise dine billeder frem, er du nødt til at finde
en anden løsning.

Dit program må kunne gemmen i andre formater?

--
Allan Vebel
http://html-faq.dk



Lasse Hillerøe Peter~ (19-08-2007)
Kommentar
Fra : Lasse Hillerøe Peter~


Dato : 19-08-07 10:00

In article <46c60de9$0$90271$14726298@news.sunsite.dk>, "Allan Vebel"
<spam@do.not> wrote:

> Mit bud er også at du skal konvertere de enkelte
> filer til gif eller png i præsis den størrelse de skal
> bruges på siden.

Som sagt var meningen at lave en "thumbnail/preview" side til eget brug,
dvs ikke noget der skal ses af andre end mig selv, med Seamonkey, som
understøtter SVG. (Men altså ikke skalerer dem som HTML specifikationen
foreskriver.)

> Dit program må kunne gemmen i andre formater?

Jamen det kan Inkscape da sådan set også.

Men da det er SVG-filer jeg sidder og piller i (et logo med variationer,
hvis det er interessant), ville det gøre det lidt mere besværligt hver
gang at skulle gemme både som SVG og som bitmap, med mindre jeg finder et
program der kan konvertere SVG->PNG i et script. Og så skal jeg også sætte
en lille thttpd op og skrive et CGI program der "on the fly" kalder
konverteren. Fandens masse besvær for noget der burde være trivielt.

Men det er jo S.O.P. i vores bizarre IT-verden...

-Lasse

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste