php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.06.2010, 17:56  
den
Neuer Benutzer
 
Registriert seit: 23.11.2008
Beiträge: 16
den befindet sich auf einem aufstrebenden Ast
Standard Formel für Bildverkleinderung

Hallo

Ich habe folgende Aufgabe wo ich nichts dazu finde und nicht hin bekommen:

- Gegeben sind diverse Bilder in verschiedenen Grössen.
- Diese sollen verkleinert werden das sie sowohl eine maximale Höhe als auch eine maximale Breite nicht überschreiten.
- Kleiner dürfen sie werden
- Sie sollen aber so gross wie möglich sein
- und es soll proportional verkleinert werden.

Kennt dazu jemand eine Formel? Ich nehme an, es gibt eine die ohne ausprobieren in einer Schleife funktioniert.

Das eigentliche verkleinern der Bilder funktioniert schon. Nur mit dem Ausrechnen der Zielgrösse haperts...

Danke für jede Hilfe!
den ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.06.2010, 17:59  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Das Thema wurde bereits hinreichend behandelt. Bitte benutze die Forensuche und beachte diesen Thread!

[MOD: Trash]
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 21.06.2010, 20:50  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.069
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Ich erlaub mir mal wieder aufzumachen, weil ich gern auf die Frage antworte. Auch wenn sie sicherlich schon - wie nikosch gepostet hat - zu Hauf beantwortet wurde.

Zitat:
Diese sollen verkleinert werden das sie sowohl eine maximale Höhe als auch eine maximale Breite nicht überschreiten.
Was meinst du jetzt?

Ich nehme mal an du möchtest Bilder einfach verkleinern, innen aber eine maximale "Bounding Box" zuweisen. Sprich so dass niemand deine Bilder auf 100.000 x 100.000 vergrößern kann.

Du musst eigentlich nur den Faktor der Verkleinerung errechnen und ihn entsprechend (wegen der Proportionen) dann auf beide Seiten (Höhe/Breite) anrechnen.

Beispiel:
Code:
// vorgabe:

$original_breite = 400;
$original_hoehe = 300;

$max_size = 60;
$soll_hoehe = 50

// rechnung:

$soll_hoehe = min($max_size, $soll_hoehe); // sicherstellen, dass unsere Angabe dem $max_size entspricht

$factor = $soll_hoehe / $original_hoehe; // 50/300 => 1/6 => 0,166...
$soll_breite = $factor * $original_breite; // 1/6 * 400 => 66,66...
$soll_breite = round($soll_breite); // 67

if ($soll_breite > $max_size) {
  $soll_breite = $max_size;
  $factor = $soll_breite / $original_breite; // 60/400 => 0,15
  $soll_hoehe = $factor * $original_hoehe; // 0,15 * 300 => 45
}

print($soll_breite . "x" . $soll_hoehe); // 60x45
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline  
Alt 23.06.2010, 09:57  
den
Neuer Benutzer
 
Registriert seit: 23.11.2008
Beiträge: 16
den befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Chriz Beitrag anzeigen
Ich erlaub mir mal wieder aufzumachen, weil ich gern auf die Frage antworte. Auch wenn sie sicherlich schon - wie nikosch gepostet hat - zu Hauf beantwortet wurde.
Ja, man findet haufenweise Diskussionen über dieses Thema. Allerdings habe ich nichts gefunden was meine Frage beantwortet hat, da meistens nur entweder die Höhe oder die Breite berücksichtigt wurde oder dann einfach um z.b 50% verkleinert wird. Oder ich hab einfach falsch gesucht...


Zitat:
Zitat von Chriz Beitrag anzeigen
Was meinst du jetzt?

Ich nehme mal an du möchtest Bilder einfach verkleinern, innen aber eine maximale "Bounding Box" zuweisen. Sprich so dass niemand deine Bilder auf 100.000 x 100.000 vergrößern kann.
So ungefähr. Dein Beispiel funktioniert nach leichten Anpassungen für mich ganz gut (und du hast mein "Knopf" den ich bei der Formel hatte gelöst, Danke!):

Zitat:
Zitat von Chriz Beitrag anzeigen
$soll_hoehe = min($max_size, $soll_hoehe); // sicherstellen, dass unsere Angabe dem $max_size entspricht
Wofür ist diese Zeile genau gedacht? Den als ich sie entfernt habe, hat es auch für Werte wie unten funktioniert:

PHP-Code:
// vorgabe:

$original_breite 300;
$original_hoehe 400;

$max_breite 100;
$max_hoehe 300;

// rechnung:

#$soll_hoehe = min($max_breite, $max_hoehe); // sicherstellen, dass unsere Angabe dem $max_size entspricht

$soll_hoehe $max_hoehe;
$factor $soll_hoehe $original_hoehe// 50/300 => 1/6 => 0,166...
$soll_breite $factor $original_breite// 1/6 * 400 => 66,66...
$soll_breite round($soll_breite); // 67

if ($soll_breite $max_breite) {
  
$soll_breite $max_breite;
  
$factor $soll_breite $original_breite// 60/400 => 0,15
  
$soll_hoehe $factor $original_hoehe// 0,15 * 300 => 45
}

$soll_hoehe round($soll_hoehe);

print(
$soll_breite "x" $soll_hoehe."\n\n"); // 60x45 
Die Variabeln habe ich teilweise umbenannt so das sie für mich mehr Sinn ergaben. Ausserdem habe ich die $soll_hoehe am Schluss noch gerundet. Dann gibt es korrekt 100x133 und nicht 75x100 aus -> Sprich es funktioniert auch wenn maximale Höhe grösser ist als die maximale Breite ist.

Vielen Dank für deine Hilfe!
den ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Input soll Formel aufrufen die ein anderes Inputfeld befüllt Farlif JavaScript, Ajax und mehr 5 22.03.2010 18:46
Tag Cloud: Algorithmus für Schriftgröße Simbo PHP-Fortgeschrittene 15 23.10.2008 19:53
Wie Zeitaddition aus Dezimalzahl realisieren? PHP Tipps 2006 1 21.01.2006 00:32
ausrechnen einer Formel PHP Tipps 2005-2 20 11.10.2005 14:45
formel in function einbauen!! PHP Tipps 2005-2 9 05.10.2005 15:10
Formel 1 Off-Topic Diskussionen 30 29.06.2005 03:32
Mathe: Schleife in Formel faux Off-Topic Diskussionen 2 28.05.2005 00:00
[Erledigt] Algorithmus für binomische Formeln... PHP-Fortgeschrittene 19 02.12.2004 09:03
formel für variable ShopPreise Off-Topic Diskussionen 0 18.11.2004 16:04
Formel 1 Datenbank Datenbanken 14 04.08.2004 10:11
Formel aus Variable ausgerechnet in andere Variable rein PHP Tipps 2004 5 11.07.2004 14:40

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
bilder verkleinern formel, bild verkleinern formel, proportional bild vergrössern formel, vergrößern verkleinern formel, formel bild verkleinern, bild proportional verkleinern formel, pixelgröße 100x133, proportional verkleinern formel, verkleinerung formel, proportionales skalieren von bildern formel, bilder proportional berechnen, bildverkleinerung formel, formel proportional verkleinern, mm proportional verkleinern formel, proportionales verkleiner berechnung, bild proportional berechnen, formel für verkleinerung, bild verkleinern proportional berechnen, proportional verkleinern ausrechnen, bild proportional formel

Alle Zeitangaben in WEZ +1. Es ist jetzt 09:09 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum