WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   Ändra storlek på bild innan uppladdning? (https://www.wn.se/forum/showthread.php?t=21143)

wiborn 2007-05-09 10:02

Undrar om det på något sätt går att, typ i flash eller nått, ändra storlek på en bild som en användare vill ladda upp på klient-sidan. Alltså jag vill inte att användaren ska ladda upp en jätte stor bild och att den sen ändras i storlek, utan jag vill att den ska ändras innan uppladdningen sker. Några ideér?

PS. Jag vill att användaren ska kunna göra storleksändringen i webbläsaren

melin 2007-05-09 10:40

går med nån form av plugin.. typ java applet

Du behöver ett plugin som kan skriva till hårddisken, flash kan inte göra det

jonny 2007-05-09 10:44

Du behöver faktiskt bara kunna läsa från hårddisken och skicka resultatet till webservern. Men jag har inte sett någon sån här lösning, det blir nog lite klurigt.

wiborn 2007-05-09 11:07

Men borde det inte gå i flash, om man typ lagrar den lokala bilden i ett "bild"-object som man sen minskar i storlek. Då behöver man ju inte spara något på hårdisken, blir ju i det interna minnet. Och sedan så kan man skicka vidare den till php.

melin 2007-05-09 11:11

nej.. flash kan inte göra det

flash kan inte skriva någonting till vare sig klient eller server, bara läsa

wiborn 2007-05-09 11:34

störigt...har en fungerande upload / crop funktion i php nu...men det tar så sjuuukt mycket minne på servern för att ändra storlek på en bild i php...känner att jag måste hitta en annan lösning...

blixtsystems 2007-05-09 21:35

Teoretiskt går det att göra I flash genom att manipulera ett bitmap objekt.
Det är dock inte helt enkelt att skriva en bra omskalningskod som inte sabbar bilderna alltför mycket.
Skicka bilddatan får man göra som en sträng till servern om man inte kör med AS3 för att kunna skícka det som binärdata.

Du kan iaf inte använda Flash inbyggda omskalningsrutiner på något sätt vad jag kan komma på.

blixtsystems 2007-05-09 21:46

Vid närmare eftertanke så är ju det enda sättet att komma åt filen på användarens maskin att använda FileReference, och då kan du inte komma åt själva bilden utan bara ladda upp den utan manipulation.

Bejjan 2007-05-09 22:03

melin, Flash kan i viss utsträckning skriva till hårddisken, dock begränsat.

Den bästa lösningen är nog dock att låta användaren skala om bilden i Flash (dvs. bara _width/_height ändras, inte den faktiska storleken), för att sedan skicka över datan till ett PHP/Asp-script som sedan sköter den faktiska omskalningen. Och om man sedan vill kan ju Flash hämta den nedskalade bilden igen. Typ att Flash bollar den mellan servern när det behövs :)

wiborn 2007-05-10 08:45

Bejjan: Men då är det ju ingen idé att ha flash alls. Vill ju att de minneskrävande "storleks ändringarna", ska ske på klient sidan. Inte på servern. Men men...

jonny 2007-05-10 08:51

Kanske enklare att stoppa i lite mer minne i servern då?

wiborn 2007-05-10 08:55

orka : /

Bejjan 2007-05-10 20:07

Då får du väl skita i den här funktionen då?

xsajt 2007-05-16 23:49

Tror det kan bli svårt att ändra storleken på bilden, men java kan nog vara ett bra sätt.
Själv har jag ett omskalningsscript i php som gör en thumbnail och en förminskning av bilden. Detta tar inte jättemycket minne vad jag märkt. Har bara 192mb eller nåt på min vps.
Däremot om man ska skala om flera bilder samtidigt så kan det bli jobbigt för servern.

Conth 2007-05-17 00:31

I php kan du göra resize på bilden med gdlib om det kan vara något...

Björn 2007-05-17 00:59

Citat:

Originally posted by Conth@May 17 2007, 00:31
I php kan du göra resize på bilden med gdlib om det kan vara något...

Han sa innan uppladdning.. alltså på klientsidan.. det går dock inte på något bra sätt i något program iom säkerhets-defaults. Annars är ju gd eller imagemagic ett givet alternativ, att tex användaren cropar en bild, eller dylikt och sedan sker den egentliga hanteringen på serversidan.

Buffi 2007-05-18 15:32

En lösning är ju att sätta en dedikerad server på just såna här grejer.
Sätt formuläret som laddar upp bilden till att skicka till den servern, som göra alla resizeningar och sedan kastar vidare bilderna till din vanliga sida.

Kostar ju såklart en del pengar att fixa en till server och så men det är nog den enklaste och bästa lösningen, och du behöver inte sätta den på någon svindyr colocation med massiva bandbreddskrav eller något då bilderna bara överförs en gång. Räcker med en billig lösning dvs.


Alla tider är GMT +2. Klockan är nu 11:36.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson