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

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
hvordan kan man læse brede/højde på et bil~
Fra : Karen


Dato : 19-07-06 11:49

Jeg har en del billeder som jeg har lagt i en tabel. For at kunne styre
layoutet vil jeg gerne sætte højden på et billed til en maks højde,
men hvis jeg løser højden til 300 og billedet kun er 200 så ser det
jo ikke ret godt ud at de er tvunget til at være 300 høje.

Så hvordan kan jeg via php læse højde og brede attributten på et
billed, og så bruge disse til at displaye billedet?

mvh/ Karen


 
 
Dan Storm (19-07-2006)
Kommentar
Fra : Dan Storm


Dato : 19-07-06 11:58

Karen skrev:
> Så hvordan kan jeg via php læse højde og brede attributten på et
> billed, og så bruge disse til at displaye billedet?
<url: http://dk.php.net/getimagesize>

--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Karen (19-07-2006)
Kommentar
Fra : Karen


Dato : 19-07-06 11:59

Jeg fandt lige denne kode, som får mig en del af vejen....

<? $size = getimagesize ("/home/sites/client12/web/img/$img_src");
<img src="/img/$img_src" alt="$img_alt" border="0" $size[3] /> ?>

Nu skal jeg "bare" bruge en max på breden (og højden), nogle forslag?


Bertel Lund Hansen (19-07-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 19-07-06 12:40

Karen skrev:

> Jeg har en del billeder som jeg har lagt i en tabel. For at kunne styre
> layoutet vil jeg gerne sætte højden på et billed til en maks højde,
> men hvis jeg løser højden til 300 og billedet kun er 200 så ser det
> jo ikke ret godt ud at de er tvunget til at være 300 høje.

Jeg vil råde dig til at gøre det på en anden måde. En tabel er
ikke hensigtsmæssig til at styre billeder med. Her kan du se et
eksempel uden tabeller og med rimeligt ensartet opsætning af
forskelligt store billeder:

   http://www.obese.dk/obese3/obese3.htm

Prøv at ændre viduets størrelse og se hvordan billederne
tilpasser sig automatisk. Det kan man ikke lave med en tabel.

Det eneste der næsten skal til, er en CSS-klasse som denne her:

..indeksbillede {
   float: left;
   width: 150px;
   height: 170px;
   margin: 0;
   padding: 10px;
   text-align: center;
}

I HTML-filen står der så bare:

<p class='indeksbillede'><a href='o3ct_01.htm'><img src='o3ct_01.jpg' alt=''></a><br>nr. 1 &nbsp; (68 kb)</p>

Så behøver man slet ikke aflæse størrelsen - ud over at jeg har
sørget for at div'en med width:150px; og height:170px; er stor
nok til hvert billede.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Karen (19-07-2006)
Kommentar
Fra : Karen


Dato : 19-07-06 13:19

Havde nu egentlig heller ikke tænkt mig en tabel. Men ville netop
bruges css til at integrere billederne i teksten via div's, i stedet
for en ufleksibel tabel. css er dog nyt for mig, jeg har ikke
programmeret hjemmesider i 6 år. Og den gang var tables også "fy fy",
men alle brugte dem alligevel.

Problemet er bare at nogle af billederne er mindre end de andre. Jeg
vil derfor ikke sætte breden til fast at være f.eks.150, da det ville
vise de små i en for stor størrelse i forhold til deres gemte
opløsning. Derfor søger jeg en måde at læse billedets størrelse
for derefter at kunne sætte størrelse på billedet. Og men 800
billeder så er det ikke ligesådan at lave en manuel løsning, når
siden nu genereres dynamisk. På hver side vise 0-3 billeder af en
ukendt størrelse, på ialt ca 1200 sider. Så manuelle løsninger er
udelukket.

Eller har jeg misforstået svaret og jeg faktisk kan lave dynamisk
størrelse på billederne, dog med en maks størrelse?

mvh/ Karen

Bertel Lund Hansen wrote:

> Karen skrev:
>
> > Jeg har en del billeder som jeg har lagt i en tabel. For at kunne styre
> > layoutet vil jeg gerne sætte højden på et billed til en maks højde,
> > men hvis jeg løser højden til 300 og billedet kun er 200 så ser det
> > jo ikke ret godt ud at de er tvunget til at være 300 høje.
>
> Jeg vil råde dig til at gøre det på en anden måde. En tabel er
> ikke hensigtsmæssig til at styre billeder med. Her kan du se et
> eksempel uden tabeller og med rimeligt ensartet opsætning af
> forskelligt store billeder:
>
>    http://www.obese.dk/obese3/obese3.htm
>
> Prøv at ændre viduets størrelse og se hvordan billederne
> tilpasser sig automatisk. Det kan man ikke lave med en tabel.
>
> Det eneste der næsten skal til, er en CSS-klasse som denne her:
>
> .indeksbillede {
>    float: left;
>    width: 150px;
>    height: 170px;
>    margin: 0;
>    padding: 10px;
>    text-align: center;
> }
>
> I HTML-filen står der så bare:
>
> <p class='indeksbillede'><a href='o3ct_01.htm'><img src='o3ct_01.jpg' alt=''></a><br>nr. 1 &nbsp; (68 kb)</p>
>
> Så behøver man slet ikke aflæse størrelsen - ud over at jeg har
> sørget for at div'en med width:150px; og height:170px; er stor
> nok til hvert billede.
>
> --
> Bertel
> http://bertel.lundhansen.dk/      http://fiduso.dk/


Bertel Lund Hansen (20-07-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 20-07-06 12:23

Karen skrev:

> Problemet er bare at nogle af billederne er mindre end de andre. Jeg
> vil derfor ikke sætte breden til fast at være f.eks.150, da det ville
> vise de små i en for stor størrelse i forhold til deres gemte
> opløsning.

Min metode viser billederne præcis som de er. Billederne vises i
en div som har en bredde større end den største bredde og en
højde større end den største højde. Billederne centreres
sideværts i div-boksen og starter i toppen. Den side jeg gav som
eksempel, viser dig hvordan det ser ud.

> Derfor søger jeg en måde at læse billedets størrelse
> for derefter at kunne sætte størrelse på billedet.

Hvis man slet ikke sætter størrelse, så finder browseren ud af
det automatisk.

> Og men 800
> billeder så er det ikke ligesådan at lave en manuel løsning, når
> siden nu genereres dynamisk. På hver side vise 0-3 billeder af en
> ukendt størrelse, på ialt ca 1200 sider. Så manuelle løsninger er
> udelukket.

Hvis billederne er meget forskellige i størrelse, kan det godt se
underligt ud at de alle vises i en boks der er stor nok til de
største, men hvis der ikke er vildt meget forskel, er det ikke
noget problem.

> Eller har jeg misforstået svaret og jeg faktisk kan lave dynamisk
> størrelse på billederne, dog med en maks størrelse?

Fidusen er at det slet ikke er billederne jeg sætter størrelse
på, men den div-boks der omslutter dem. Derfor er jeg fri for at
spekulere på billedets størrelse, og billederne flyder med inden
i div-boksen når den flyder på siden.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Arne Feldborg (20-07-2006)
Kommentar
Fra : Arne Feldborg


Dato : 20-07-06 22:50

"Karen" <aerangis@gmail.com> skrev 19 Jul 2006 05:19:09 -0700


>Eller har jeg misforstået svaret og jeg faktisk kan lave dynamisk
>størrelse på billederne, dog med en maks størrelse?
>
Du kan sgtens bruge funktionerne i GD library (eller for den sags skyld
Image Magic) til at lave nye tumbnails 'on the fly' med en given
maxhøjde og / eller bredde og sende dem direkte til brugerens browser.
Det vil også give et pænere resultat hvis billederne feks. alle har
samme højde.

Men uanset hvilken af de to løsninger du bruger, så er det ret
resourcekrævende (=serverbelastning) hvis du skal gøre det hver gang.

Alternativet er enten at gemme de nye tumbnails løbende efterhånden som
de bliver genereret og så genbruge dem, eller også een gang for alle at
danne nye tumbnails af samtlige billeder.

I det sidstnævnte tilfælde ville Image Magic nok være et godt valg og
med de originale billeder som udgangspunkt ville resultatet også blive
bedre.

--
mvh, A:\Feldborg

Slægtsforskning og lokalhistorie i midt- vestjylland
http://hammerum-herred.dk/

Peter Brodersen (21-07-2006)
Kommentar
Fra : Peter Brodersen


Dato : 21-07-06 05:55

On Thu, 20 Jul 2006 23:50:07 +0200, Arne Feldborg
<feldborg@haunstrup.dk> wrote:

>I det sidstnævnte tilfælde ville Image Magic nok være et godt valg og
>med de originale billeder som udgangspunkt ville resultatet også blive
>bedre.

Om man bruger GD(2) eller ImageMagick gør næppe den store forskel - de
kan begge finde ud af at interpolere fint, og GD har tendens til at
følge med PHP.

Jeg er stor fan af ImageMagick, men for skaleringsopgaver og diverse
basale klip-og-kopier-grafik-opgaver er GD tilstrækkeligt (og
understøtter også alphakanaler, m.m.)

--
- Peter Brodersen
Ugens^WMånedens^WSommerens værktøj - Find vej: www.findvej.dk
Nu med valgfri tekst: www.findvej.dk/Nybrogade2,1203?text=Kulturministeriet

Karen (20-07-2006)
Kommentar
Fra : Karen


Dato : 20-07-06 22:34

Jeg har indprogrammet at størrelse på billedner sættes via en min
funktion oven på getimagesize funktionen. størrelsen af div kan så
også sættes i samme omgang.

Jeg prøvede at droppe alle tabeller til fordel for divs, men så gode
er de bare ikke og såvidt jeg kan forstå er fortolkningen af dem ikke
ens på alle browsere. Så jeg har valgt en kombination af tables og
div's. Divs er nu ret smarte og helt klart bedre end iframes.


Bertel Lund Hansen wrote:

> Karen skrev:
>
> > Problemet er bare at nogle af billederne er mindre end de andre. Jeg
> > vil derfor ikke sætte breden til fast at være f.eks.150, da det ville
> > vise de små i en for stor størrelse i forhold til deres gemte
> > opløsning.
>
> Min metode viser billederne præcis som de er. Billederne vises i
> en div som har en bredde større end den største bredde og en
> højde større end den største højde. Billederne centreres
> sideværts i div-boksen og starter i toppen. Den side jeg gav som
> eksempel, viser dig hvordan det ser ud.
>
> > Derfor søger jeg en måde at læse billedets størrelse
> > for derefter at kunne sætte størrelse på billedet.
>
> Hvis man slet ikke sætter størrelse, så finder browseren ud af
> det automatisk.
>
> > Og men 800
> > billeder så er det ikke ligesådan at lave en manuel løsning, når
> > siden nu genereres dynamisk. På hver side vise 0-3 billeder af en
> > ukendt størrelse, på ialt ca 1200 sider. Så manuelle løsninger er
> > udelukket.
>
> Hvis billederne er meget forskellige i størrelse, kan det godt se
> underligt ud at de alle vises i en boks der er stor nok til de
> største, men hvis der ikke er vildt meget forskel, er det ikke
> noget problem.
>
> > Eller har jeg misforstået svaret og jeg faktisk kan lave dynamisk
> > størrelse på billederne, dog med en maks størrelse?
>
> Fidusen er at det slet ikke er billederne jeg sætter størrelse
> på, men den div-boks der omslutter dem. Derfor er jeg fri for at
> spekulere på billedets størrelse, og billederne flyder med inden
> i div-boksen når den flyder på siden.
>
> --
> Bertel
> http://bertel.lundhansen.dk/      http://fiduso.dk/


Bertel Lund Hansen (21-07-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 21-07-06 18:45

Karen skrev:

> Jeg prøvede at droppe alle tabeller til fordel for divs, men så gode
> er de bare ikke

Jo, det er de nu, men det er ikke sikkert at du mestrer
teknikken.

> og såvidt jeg kan forstå er fortolkningen af dem ikke
> ens på alle browsere.

Div'er er ikke anderledes end tabeller hvad det angår. Sat
rigtigt op ser de stort set ens ud i alle browsere. Sat forkert
op ser hverken tabeller eller div'er ens ud.

Prøv at indsætte et nyt billede midt i en tabel.

Med div'er gøres det blot ved at man skriver én linje.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Karen (21-07-2006)
Kommentar
Fra : Karen


Dato : 21-07-06 11:59

Problemet er at jeg til hver artikel skal have vist 1-3 billeder.
Disse skal helst ikke være for små. Jeg har dog i tidligere dages
dumhed gemt en del af billederne for småt (den gang var internet og
folks maskiner mindre "krævende"). Nu 7 år senere sparker jeg
jævnligt til mig selv over denne dumhed. Men sådan er det jo, man
bliver klogere.

Jeg vil derfor helst vise billederne i en rimelig størrelse, mens de
små billeder ikke skal skaleres op. Forhåbentlig er det ikke så
krævende når der blot skal læse størrelse på et enkelt billed per
side.

Men case closed, jeg har programmeret det, mangler dog at sætte size
på det div billederne vises i. Hvilken måleenhed svarer den
størrelse jeg får ud af getimagesize?

Hvis jeg sætte div størrelse for lille, så tilpasser den godt nok
størrelsen, men billed teksten (som er gemt i en database), vises kun
i den definerede brede, så derfor vil jeg meget gerne kunne sætte
breden på div'en. Og derfor vil jeg gerne bruge den rigtige enhed.

Håber I kan svare på dette.

mvh/ Karen


Peter Brodersen (21-07-2006)
Kommentar
Fra : Peter Brodersen


Dato : 21-07-06 12:53

On 21 Jul 2006 03:58:41 -0700, "Karen" <aerangis@gmail.com> wrote:

>Men case closed, jeg har programmeret det, mangler dog at sætte size
>på det div billederne vises i. Hvilken måleenhed svarer den
>størrelse jeg får ud af getimagesize?

Pixels.

--
- Peter Brodersen
Ugens^WMånedens^WSommerens værktøj - Find vej: www.findvej.dk
Nu med valgfri tekst: www.findvej.dk/Nybrogade2,1203?text=Kulturministeriet

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste