webForumDet fria alternativet

Förminska bild och skapa thumbnail

PHP

8 svar · 610 visningar · startad av smileenergy

Medlem sedan jan. 200781 inlägg
Frågan#1

Hej!

Jag har just nu en helt vanlig bilduppladdning via ett formulär, men nu är det som så att jag skulle vilja förminska bilderna, jag vill ha en max gräns på höjden och en på bredden, sen ska han kolla vilken sida som är störst och sen förminska bilden propotionsenligt efter enligt den sida som är störst på bilden och sätta den till min maxgräns. t.ex. 500 på höjden och 600 på bredden.

Jag vill även att den ska skapa thumbnails automatiskt när man laddat upp bilden på ett snyggt sätt, helst beskära bilden också så att det ser snyggt ut när skriver ut den i ett litet galleri sen, så att man inte kan ha laddat upp en väldig propotionstokig bild som kanske enligt första förminskningen blev 30x2px eller något sånt så att man inte ser vad bilden föreställer i thumbnailversionen. utan jag vill helst ha alla bilder enligt fasta mått. Jag vill att den ska förminska bilden propotionsenligt, blir bilden inte då 100x75 eller 75x100 så vill jag att bilden ska beskäras så att den får dessa mått.

Scriptet ska alltså spara en förminskad bild och en thumbnailversion på servern och inte bara förminska det när användaren vill kolla på det utan som sagt spara ned bilderna med de nya propotionerna på servern.

Hoppas att ni förstår vad jag är ute efter, har kollat runt men inte hittat något som gör den såhär så skulle bli glad om någon här på webforum satt och höll på en liknande funktion som han eller hon kunde dela med sig.

Medlem sedan aug. 2004903 inlägg
#2

Håller just nu på med ett bildgalleri-projekt i min blogg... kolla på följande sida i klassen class_thumbnail.php

http://www.geiser.se/projekt/

Edit
Följande filer hör ihop och som du bör kolla i
do_upload.php
class_upload.php
class_thumbnail.php

Medlem sedan jan. 200781 inlägg
#3

Har testat lite med din kod, men får det inte att fungera.

Får följande error:

Warning: move_uploaded_file(/bilder/8979e8978e66e9b0733c6e875d82aa76.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/.../public_html/bilder/class/class_upload.php on line 170

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpHw4hZd' to '/bilder/8979e8978e66e9b0733c6e875d82aa76.jpg' in /home/.../public_html/bilder/class/class_upload.php on line 170

har suttit och försökt komma på vad det är för fel men inte lyckats komma på det? har visserligen tagit bort allt som har med databasen osv att göra men borde ju inte ha någon betydelse.

Medlem sedan aug. 2004903 inlägg
#4

har du med allt som finns i settings.php? Har du angett rätt sökvägar? Har du satt korrekta rättigheter på mapparna?

Medlem sedan aug. 2004903 inlägg
#5

Annars kan du ju vänta en dag eller två tills jag är helt klar med bildgalleriet.. ladda ner det och bygga om det utifrån det istället. Blir nog lite lättare. Jag är bara på min tredje dag... tror jag är klar inatt eller imorgon någon gång om jag får tillräckligt med tid.

Det kommer va helt fritt att ladda hem o göra vad man vill med.

Medlem sedan juni 20014 421 inlägg
#6

Du skulle kunna kolla på hur han gör bildförminskningar i den koden han länkar till. Men studera inte koden för att lära dig OOP, det ser mest ut som funktioner i ett namespace. Tulork, du borde ta en ditt på designpatterns för OOP :). Det kan vara en övergripande bok som Head First Designpatterns eller en mer PHP-inriktad bok som t.ex PHP 5 Objects, Patterns, and Practice. Att läsa både vore dock att föredra.

Medlem sedan aug. 2004903 inlägg
#7

Jupp... vet att jag har en liten egen variant på det hela... eller kanske inte egen men jag kör på mitt sätt i alla fall :)

Det va inte så länge sedan jag provade på oop för första gången... sen dess har det blivit en liten blandad metod som jag känner mig väldigt bekväm i. Men som colione sa... kolla på bildförminskningen, du behöver absolut inte hålla på med det andra.

Bara för att stilla min egna nyfikenhet.. hur hade du strukturerat upp det hela colione?

Medlem sedan juni 20014 421 inlägg
#8

Varierar lite på vad jag har för slutgiltigt mål. Hade min stora utmaning vara att skriva allt från grunden hade jag börjat fila på ett eget litet framework, alternativt utvecklat en eget komponent till mitt egna framework. Hade jag bara tänkt putta ihop allting snabbt hade jag utgått från Zend Framework[1] eller något annat framework och kolla på vad som erbjuds. Jag hade utgått från att jag skulle ha behov av dessa klasser igen och skrivit dem abstraktare. Jag skulle ha plockat bort databasaccessen från klasserna, antagligen utgått från ett MVC-pattern[2][3].
Jag hade i varje fall försökt strukturera det så att jag har klasser för att interagera med databaser, modifiera bilder samt nån form av templating. Jag skulle även plocka bort funktionsanrop ur kontruktorn och istället anropa dem utifrån när det krävs. Jag skulle låta klasserna outputa data (array, strängar, etc) och inte html, det skulle jag låta templatedelen sköta, antingen smarty, zends view/layout eller ett eget skrivet.
Utan att vara allt för utförlig.
Typ...

[1] http://framework.zend.com/manual/en/
[2] http://en.wikipedia.org/wiki/Model-view-controller
[3] http://www.onlamp.com/pub/a/php/2005/09/15/mvc_intro.html

Medlem sedan aug. 2004903 inlägg
#9

Tack för det. Den sista länken var intressant, den tackar jag speciellt för. All information som kan hjälpa är jag tacksam för.

Något jag definitivt ska göra är att skriva det lite mer abstrakt för min egen skull.

257 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)