Avatar billede para7 Nybegynder
04. september 2009 - 14:52 Der er 7 kommentarer og
2 løsninger

Logo i forskellige størrelser størrelses tilpasning

Jeg skal have forskellige logoer plaveret i en tabelcelle 155x55. Dvs ingen logoer må overskride de mål, ejheller må de opskaleres.

Jeg har leget lidt med http://dk2.php.net/function.getimagesize

Der er nok nogen der kan opstille en funktion der klarer dette. det vil tage mig som newbie for lang tid, hvis det ellers skulle lykkes.

Jeg har forenklet:

$logourl = "http://domain.dk/logos/".$_SESSION["pmail"].".gif";
echo = "<table border='0' cellpadding='0' cellspacing='0' style='width: 155px; height: 55px'><tr><td><img src='".$logourl."' width='155'></td></tr></table>";
Avatar billede mrgumble Nybegynder
04. september 2009 - 15:16 #1
Jeg gider ikke sidde og finde på koden til en funktion, men jeg har nogle pointere:

1. Brug getimagesize til at hente filstørrelsen (kig på eksemplerne).
2a. Hvis bredden er 155 eller mindre, så brug eksempel #2.
2b. Ellers skal du have lavet størrelsen om. Vi lader bare browseren gøre det, men du skal selv beregne højden. Det bliver noget ala:

list($width, $height, $type, $attr) = getimagesize($logourl);
if ($width > 155) {
  $height = $height / ($width/155);
  $attr = "width=\"155\" height=\"$height\"";
}
echo "<img src=\"img/flag.jpg\" $attr alt=\"getimagesize() example\" />";
Avatar billede dkfire Nybegynder
04. september 2009 - 15:39 #2
Nu er det ikke for at virke sur, men lærer du ikke mest ved selv at forsøge ?
Ud over det, så har jakobdo lavet en pæn artikel omkring en funktion til at ændre billeder med.
Tag et kig på den:
http://www.eksperten.dk/guide/1130
Avatar billede para7 Nybegynder
04. september 2009 - 15:57 #3
Jo dkfire og tak for link. Men jeg må arbejde online ret hurtigt for ikek at forstyrre sitet og med en problematisk ftp forbindelse.

mrgumble: eksempel #2 kan jeg ikke finde, mener du ikke eksempel #1?
Avatar billede michael_stim Ekspert
04. september 2009 - 16:14 #4
Men du sidder vel ikke og udvikler direkte på sitet??? Lav en kopi og læg den i en anden mappe eller lokalt.
Avatar billede para7 Nybegynder
04. september 2009 - 16:22 #5
Tak for rådet. Der er ikke andre muligheder. Det er et specialiseret system, jeg har overtaget udviklingen af og der ikke kan køre på localhost eller kopieres til anden url. Så nu laver jeg forenklede tests af funktionerne lokalt først.
Avatar billede para7 Nybegynder
04. september 2009 - 17:13 #6
Jeg må indrømme at jeg er for newbee til det her endnu. Men jeg har det her kørende, som skal laves til at holde sig inden for min box uden at opskalere. Det er lidt et skud i tågen.

<?php

//$logourl = "logo1.gif"; //org: 272x28
$logourl = "logo2.gif"; //org: 209x239

list($width, $height, $type, $attr0) = getimagesize($logourl);

echo $width."x".$height;

if ($width > 155) {
    $height = $height / ($width/155);
    $attr = "width=\"155\" height=\"$height\"";
}elseif($height > 55){
    $width = $width / ($height/155);
    $attr = "height=\"$height\" width=\"155\"";
}else{
    $attr = $attr0;
}

echo "<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" style=\"width: 155px; height: 55px\"><tr><td />";
echo "<img src=\"$logourl\" $attr />";
echo "</td></tr></table />";

?>
Avatar billede psychopixi Nybegynder
04. september 2009 - 22:15 #7
#5 Lyder usnedigt at sætte en "newbie" til at udvikle til et "specialiseret system" ;)
Avatar billede para7 Nybegynder
05. september 2009 - 13:29 #8
Jeg fik taget mig sammen og lavet det fra bunden på min egen måde. Men tak for tippene og point til mig selv og mrgumble.


<?php
$imgURL = "logo0.gif"; //org: 112x35
list($detectX, $detectY) = getimagesize($imgURL);
$maxX = 155;
$maxY = 55;
$newY = $maxY;
$newX = $maxX;

if ($detectY > $maxY) {
    $apectRatio = (($maxY * 100) / $detectY);
    $newX = $detectX * ($apectRatio / 100);
}elseif ($detectX > $maxX) {
    $apectRatio = (($maxX * 100) / $detectX);
    $newY = $detectY * ($apectRatio / 100);
}

$imgTag = "width=\"$newX\" height=\"$newY\"";
echo "<img src=\"$imgURL\" border=\"1\" $imgTag />";
?>
Avatar billede para7 Nybegynder
05. september 2009 - 13:32 #9
Jeg måtte teste med logoer i 7 forskellige størrelser for at være sikker :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester