Что лучший способ состоит в том, чтобы обработать фото загрузки?

11
задан Oli 16 September 2008 в 16:44
поделиться

20 ответов

Наиболее распространенным решением для этого является апплет Java, хотя большинство из них не свободно. Примеры:

4
ответ дан 3 December 2019 в 02:42
поделиться

GIMP (http://www.gimp.org/) является хорошим инструментом для того, чтобы сделать, изменяют размер, и открытый исходный код.

-1
ответ дан 3 December 2019 в 02:42
поделиться

Зависит от веб-сервера. Если можно использовать сервлеты, попробуйте это:

// UploadServlet.java : Proof of Concept - Mike Smith March 2006
// Accept a file from the client, assume it is an image, rescale it and save it to disk for later display
import javax.servlet.http.*;
import javax.imageio.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.*;
import org.apache.commons.fileupload.servlet.*;
import java.awt.image.*;
import java.awt.*;

public class UploadServlet extends HttpServlet  {

public static void printHeader(PrintWriter pw)  {
    pw.println("<HEAD><TITLE>Upload Servlet</TITLE><HEAD>");
    pw.println("<BODY>");
}

public static void printTrailer(PrintWriter pw)  {
    pw.println("<img src=\"../images/poweredby.png\" align=left>");
    pw.println("<img src=\"../images/tomcat-power.gif\" align=right>");
    pw.println("</BODY></HTML>");
}


public void init()  {  // Servlet init() : called when the servlet is LOADED (not when invoked)
}

public void service(HttpServletRequest req, HttpServletResponse res)   throws IOException {
    DiskFileItemFactory dfifact;
    ServletFileUpload sfu; 
    java.util.List items;
    Iterator it;
    FileItem fi;
    String field, filename, contype;
    boolean inmem, ismulti;
    long sz;
    BufferedImage img;
    int width, height, nwidth, nheight, pixels;
    double scaling;
    final int MAXPIXELS = 350 * 350;

    res.setContentType("text/html");
    PrintWriter pw = res.getWriter();
    printHeader(pw);

    ismulti = FileUpload.isMultipartContent(req);
    if (ismulti)  {
        pw.println("Great! Multipart detected");
        dfifact = new DiskFileItemFactory(999999, new File("/tmp"));
        sfu = new ServletFileUpload(dfifact);
        try  {
            items = sfu.parseRequest(req);
        } catch (FileUploadException e)  {
            pw.println("Failed to parse file, error [" + e  + "]");
            printTrailer(pw);
            pw.close();
            return;
        }
        it = items.iterator();
        while (it.hasNext())  {
            fi = (FileItem) it.next();
            if (fi.isFormField())  {
                pw.println("Form field [" + fi.getFieldName() + "] value [" + fi.getString() + "]");
            }
            else  {  // Its an upload
                field = fi.getFieldName();
                filename = fi.getName();
                contype = fi.getContentType();
                inmem = fi.isInMemory();
                sz = fi.getSize();
                pw.println("Upload field=" + field + " file=" + filename + " content=" + contype + " inmem=" + inmem
                    + " size=" + sz);
               InputStream istream = fi.getInputStream();
               img = ImageIO.read(istream);
               nwidth = width = img.getWidth();
               nheight = height = img.getHeight();
               pixels = width * height;
               if (pixels > MAXPIXELS)  {
                   scaling = Math.sqrt((double) MAXPIXELS / (double) pixels);
                   nheight = (int) ((double) height * scaling);
                   nwidth = (int) ((double) width * scaling);
               }
               BufferedImage output = new BufferedImage(nwidth, nheight, BufferedImage.TYPE_3BYTE_BGR);
               Graphics2D g = output.createGraphics();
               g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
               g.drawImage(img, 0, 0, nwidth, nheight, null);
               ImageIO.write(output, "jpeg", new File("/var/tomcat/webapps/pioneer/demo.jpg"));
               istream.close(); 
            }
        }
    }
    else
        pw.println("Bugger! Multipart not detected");
        printTrailer(pw);
        pw.close();
}

public void destroy()  {
}
}
1
ответ дан 3 December 2019 в 02:42
поделиться
1
ответ дан 3 December 2019 в 02:42
поделиться

Хождение путем Flickr легко и будет работать хорошо.

Если бы Вы хотите пойти более усовершенствованные, я рекомендовал бы snipshot, или пикник (Flickr использует его). Оба свободны использовать и иметь API для использования.

1
ответ дан 3 December 2019 в 02:42
поделиться

Я в настоящее время обязан реализовывать подобное требование как Oli.

Я полагаю, что Facebook.com использует какой-то апплет Java, и он работает вполне прилично, но я не уверен если апплет, доступный как OSS. Я собираюсь изучить JUpload, предложенный ScArcher2.

Если Вы парень никакой какой-либо другой хороший апплет сохраните это прибытием.

1
ответ дан 3 December 2019 в 02:42
поделиться

Я высоко предложил бы использовать FileBrowser Lussomo. Это столь же легко как 'перетаскивание' :D

Я использовал его для своей команды разработки игр, где у нас был необработанный дамп более чем 200 изображений искусства понятия, и мы просто извлекли FileBrowser к PHP-поддерживающему веб-серверу и вывели изображения в соответствующих каталогах (1 на альбом) и запустили thumbnailing скрипт. Это обрабатывает обрезку изображений и оптимизацию их размера для Вас. Настолько лучше, чем использование чего-то как галерея Menalto, где необходимо загрузить их через неловкий интерфейс загрузки.

1
ответ дан 3 December 2019 в 02:42
поделиться

У Вас могли также быть они, посылают изображения по электронной почте к picasa. Сеть Picasa имеет функцию, куда можно отправить изображения в "секретное" электронное письмо, которое отправит их на picasa счет. Создайте picasa учетную запись, распределите "секретную" электронную почту и ожидайте всех изображений для разоблачения.

1
ответ дан 3 December 2019 в 02:42
поделиться

Действительно ли пользование электронной почтой является фотографией в доступном варианте?

Большинство людей, которые хотят обменяться фотографиями, вероятно, уже, знает, как отправить фотографии в электронном письме. И большинство почтовых клиентов уже решило проблемы загрузки файла.

Просто установите одну учетную запись gmail/whatevermail и имейте Ваш опрос веб-сайта ящик входящих сообщений.

Это - что-то как то, что TwitPic делает для Твиттера, но Ваши требования, кажется, более более просты, чем это.

1
ответ дан 3 December 2019 в 02:42
поделиться

Лично большинство пользователей не понимает DPI, и их изображения, даже обрезанные вниз, заканчиваются больше, чем php.ini для большинства хостинговых компаний позволяет.

Я не уверен, сколько контроля Вы хотите дать им или как Вы хотите, чтобы общедоступная сторона вела себя.

Я предложил бы использовать приложение FTP Dropbox, такое как http://etonica.com/dropbox/index.html (танго Dropbox), Это свободно Вашим клиентам, и только необходимо заплатить за версию, таким образом, можно настроить информацию о FTP и защитить ее.

Я сделал бы, чтобы они загрузили что-то, связывают paint.net (который СВОБОДЕН), сделали их отредактировать фотографии к надлежащему размеру и затем просто перетащить их к этому приложению. это легко и не требует, чтобы php.ini был изменен.

Вы могли также использовать что-то как приложение директора slideshowpro.

1
ответ дан 3 December 2019 в 02:42
поделиться

Я, которого completly согласовывают с zigdon, позволяю различные сайты, но только поднимаю фотографии с сети. Я Вы все еще хотите позволить загрузки и поместить ограничение на размер.

Теперь, если бы Вы хотите броситься во что-то большое, я предложил бы поместить ограничение на размер и затем использовать JQuery (или другая библиотека) для работы с изображениями.

Просто мои 2 цента

1
ответ дан 3 December 2019 в 02:42
поделиться

Как насчет того, чтобы использовать PhotoShop Онлайн Это позволяет Вам редактировать фотографии с веб-редактором и предлагает 2 ГБ устройства хранения данных. Я не использовал его сам, так не знайте, позволяет ли это, чтобы многочисленные пользователи получили доступ к той же учетной записи хотя

1
ответ дан 3 December 2019 в 02:42
поделиться

Вы могли использовать Silverlight или Flash или некоторый пользовательский плагин для разрешения управляемых загрузок, где можно отобразить индикатор выполнения, например. Нет очень, можно сделать о скоростях загрузки, но можно, по крайней мере, показать им прогресс, в то время как он продолжается.

Я не знаю ни о каких консервированных программах загрузки, которые можно использовать, но не должно быть слишком трудно сделать одно (если Вы не знаете Flash или Silverlight).

1
ответ дан 3 December 2019 в 02:42
поделиться

Picasa является довольно большим/свободным фото приложением управления. Это позволяет нам, Вы делаете некоторое довольно впечатляющее редактирование, и имеет возможности загрузки, хотя я не могу помнить, загрузит ли это на где-нибудь, или просто определенные популярные сайты (как Flickr).

1
ответ дан 3 December 2019 в 02:42
поделиться

Я использовал бы апплет. Вы могли сделать изменение размеров изображений и вращение на стороне клиента.

Похоже, что JUpload может сделать это для Вас.

2
ответ дан 3 December 2019 в 02:42
поделиться

Если бы Вы делаете это с Flash и используете Flickr, то я проверил бы библиотеку AS3 Flickr:

http://code.google.com/p/as3flickrlib/

который имеет поддержку загрузки изображений.

Загрузка требует аутентификации. Библиотека также содержит основанное на Flex управление для обработки этого:

http://www.mikechambers.com/blog/2008/08/12/flex-based-flickr-api-authorization-control/

(остальная часть библиотеки является ActionScript 3 и может использоваться в Flex или Flash.

Вероятно, самому легкому решению состоял в том, чтобы просто загрузить изображения на Flickr, отредактированную в Picnik (встроенный в Flickr теперь), и затем загруженный на пользовательский сайт с помощью или каналов RSS Flickr или API:

http://www.flickr.com/help/picnik/

http://www.flickr.com/services/api/

надежда, которая помогает...

камеры микрофона

mesh@adobe.com

2
ответ дан 3 December 2019 в 02:42
поделиться

Я использовал swfupload вполне немного. Это является довольно потрясающим: http://www.swfupload.org/

3
ответ дан 3 December 2019 в 02:42
поделиться

Другая опция могла состоять в том, чтобы позволить людям загружать свои фотографии на любой сервис, который они привыкли использовать (flickr, Google, smugmug, или любой другой), и просто принимают имя пользователя для того сервиса или URL для папки.

Затем у Вас может быть свой захват приложения копия тех изображений для хранения локально последовательным интерфейсом.

4
ответ дан 3 December 2019 в 02:42
поделиться

Мне везло с Галереей. Это свободно, с открытым исходным кодом, и имеет все функции, которые Вы упомянули.

Это позволит Вашим пользователям загружать фотографии без любого вмешательства от Вас.

4
ответ дан 3 December 2019 в 02:42
поделиться

Из любопытства, на том, какой веб-стек это должно выполнить? ЛАМПА? 2k3+IIS? и т.д. и т.д.? Многие решения с открытым исходным кодом там являются межплатформенными, но другие не...

1
ответ дан 3 December 2019 в 02:42
поделиться