PHP-Matheaufgabe...
Rafael
- php
... ich brüte seit geraumer Zeit über einer Matheaufgabe für eine Bildgalerie: Wenn ich ein Bild mit einer Breite von 200 habe möchte ich links und rechts einen entsprechenden (gleichgroßen) Rand setzen (per margin-left und -right).
Die Originalbilder sind aber alle unterschiedlich breit und weit.
Mein Kode sieht folgendermaßen aus:
<img src="".$temppic."" alt="Bild ".$y."" class="galeriebild"";
$temp_size = getimagesize($temppic);
if ($temp_size[0]>=$temp_size[1]) {
$content.= " width="200" style="";
$scal_size = ($temp_size[1]/200);
$margin = (int)(200-(($temp_size[0]/$scal_size)/2));
$content.= "margin-top: ".$margin."px; margin-bottom: ".$margin."px;"";
}
else {
$content.= " height="200" style="";
$scal_size = ($temp_size[0]/200);
$margin = (int)(200-(($temp_size[1]/$scal_size)/2));
$content.= "margin-left: ".$margin."px; margin-right: ".$margin."px;"";
}
$content.= " />
Irgendwo habe ich einen Denkfehler. Kann mir jemand helfen?
Moin!
Durch den Code steige ich ehrlich gesagt nicht durch. Aber wenn Du in der Breite B etwas der Breite b mittig plazieren willst, dann ist der linke Rand rl= int( (B - b) / 2 ) und rechts rr= B - b - rl.
-- Skeeve
Rand B und Rand A sollen aber gleichgroß sein.
Ich will viele Bilder nebeneinander platzieren und die sollen jeweils gleich viel Platz einnehmen...
Wenn ein Bild nun 1000 Pixel breit ist, dann rechne ich es auf 200 Pixel runter und die Höhe mit 800 Pixeln soll dann eben entsprechend sinken.
Das wäre bei mir:
var = Breite / 200
RandGesamt = Höhe / var
Rand = RandGeamt / 2
aber irgendwo ist ein Denkfehler...
Moin!
Rand B und Rand A sollen aber gleichgroß sein.
Einer von beiden muß aber ein Pixel größer sein, wenn die Bildbreite ungerade und < 200 ist.
Wenn ein Bild nun 1000 Pixel breit ist, dann rechne ich es auf 200 Pixel runter
Ahhh! Rand oben und Unten bei Bildern breiter als 200!
var = Breite / 200
quotient= 200 / Breite
RandGesamt = Höhe / var
RandGesamt= Höhe / quotient
Rand = RandGeamt / 2
Richtig.
Allerdings, wie oben schon beschrieben... Was ist mit ungeradem RandGesamt...
-- Skeeve
der wird über das PRefix (int) weggerundet. Ganz so genau muss es nicht.
Bzw: Klappt nicht... ich bekomme negative Werte, warum auch immer....
Moin!
Bzw: Klappt nicht... ich bekomme negative Werte, warum auch immer....
Gib mal Beispieldaten.
-- Skeeve
Problem ist behoben. Trotzdem danke! Hatte nen simplen Tippfehler...