Сжатие файла изображения перед загрузкой в ​​путь с использованием Java - PullRequest
0 голосов
/ 01 октября 2019

Я загружаю изображение из Gmail, в чем проблема, файл изображения размером до 6 МБ, поэтому для завершения процесса загрузки потребуется еще некоторое время. Итак, мой вопрос Должен ли я сжимать изображение во время загрузки (т.е. перед сохранением в путь)? Я просмотрел несколько примеров сжатия изображений в java, но все они берут изображение с одного пути, затем сжимают и, наконец, сохраняют это сжатое изображение. в какую-то другую папку. Если вам нужен код для загрузки вложения из Gmail, нажмите здесь . Не могли бы вы помочь мне найти решение?

/*Downloading EmailAttachment into localfolder*/
    public void downloadEmailAttachments(String protocol, String host, String port, String userName, String password,
            String tempDirectory,String saveDirectory,String MessageID,String HeaderID,String emailDate,String emailSubject, MessageContext context) {
   logger.info("===Inside downloadEmailAttachments Process====");
        Properties properties = getServerProperties(protocol, host, port);
        Session session = Session.getDefaultInstance(properties);

        int status = 0;
        try {
            Store store = session.getStore(protocol);
            store.connect(userName, password);
            Folder folderInbox = store.getFolder("INBOX");
            folderInbox.open(Folder.READ_ONLY);
            logger.info("No of Unread Messages : " + folderInbox.getUnreadMessageCount());
            /* create a search term for all "unseen" messages*/
            Flags seen = new Flags(Flags.Flag.SEEN);
            FlagTerm unseenFlagTerm = new FlagTerm(seen, false);


            SearchTerm searchTerm = new AndTerm(new MessageIDTerm(HeaderID), new SubjectTerm(emailSubject));
            Message[] arrayMessages = folderInbox.search(searchTerm);
            if(arrayMessages != null && arrayMessages.length > 0){

                Message message = arrayMessages[0];
                Address[] fromAddress = message.getFrom();

                String msgId=mimeMessage.getMessageID();*/
                String from = fromAddress[0].toString();

                String subject = message.getSubject();
                String sentDate = message.getSentDate().toString();

                String contentType = message.getContentType();


                String messageContent = "";
                String modifiedsubject=subject.toUpperCase().replaceAll("\\s+", "");

                String attachmentname = "";


                if(modifiedsubject.contains("SELLMYCAR")){  
                if (contentType.contains("multipart")) {
                    // content may contain attachments
                    Multipart multiPart = (Multipart) message.getContent();
                    int numberOfParts = multiPart.getCount();
                    for (int partCount = 0; partCount < numberOfParts; partCount++) {
                        MimeBodyPart part = (MimeBodyPart) multiPart.getBodyPart(partCount);
                        if (Part.ATTACHMENT.equalsIgnoreCase(part.getDisposition())) {
                            // this part is attachment
                            //String fileName = part.getFileName();
                            // part.setFileName(ESBMessageID+":"+new Date());
                            // String fileName = part.getFileName()+":"+ESBMessageID+":"+new Date();
                            String fileName = part.getFileName();
                            fileName=fileName.substring(0, fileName.lastIndexOf(".")).concat(".jpg");
                            System.out.println("Modified FileName:" + fileName);
                            attachmentname = fileName;
                            /*part.saveFile(saveDirectory + File.separator + fileName);*/
                            part.saveFile(tempDirectory + File.separator + fileName);

                            logger.info("Files are downloaded into "+ tempDirectory+" successfully");

                            if (attachmentname.length() > 1) {

                                attachmentname = attachmentname.substring(0, attachmentname.length());
                            }

                            /*FileMove Process*/
                            moveFile(tempDirectory,fileName,saveDirectory,MessageID,context);

                        } else {
                            // this part may be the message content
                            messageContent = part.getContent().toString();
                        }
                    }

                    // print out details of each message
                    logger.info("Message # :");
                    logger.info("\t From: " + from);
                    //logger.info("\t UserName: " + name);
                    logger.info("\t Subject: " + subject);
                    logger.info("\t Sent Date: " + sentDate);
                    //logger.info("\t UserMailID: " + email);
                    logger.info("\t Attachments: " + attachmentname);
                    logger.info("\t LocalDownloadpath: " + saveDirectory);



                } else if (contentType.contains("text/plain") || contentType.contains("text/html")) {
                    Object content = message.getContent();
                    if (content != null) {
                        messageContent = content.toString();
                    }
                }






            }
            }

            // disconnect
            folderInbox.close(false);
            store.close();
        } catch (MessagingException ex) {

            logger.info("Could not connect to the message store");
            ex.printStackTrace();
        } catch (IOException ex) {

            ex.printStackTrace();
        }````
...