2016-03-03 3 views
1

Я интегрировал Image magick с Java WebApp и развернул его в Azure App Service. На лазури, я получаю 0kb в качестве выходного изображения для изображения, в то время как одно и то же изображение преобразуется отлично на моем локальном компьютере. Я использую im4java для интеграции с Image Magick. Ниже приведен код:Azure: Image Magick дает 0kb выход?

public void compressImage(String imageSource, String destinationPath) throws IOException, InterruptedException, 
     IM4JavaException { 
    ConvertCmd cmd = getCommand(); 
    // create the operation, add images and operators/options 
    IMOperation op = new IMOperation(); 
    op.strip(); 
    op.interlace(); 
    op.addRawArgs(compressionRawArguments); 
    op.gaussianBlur(compressionGaussianBlur); 
    op.quality(compressedImageQuality); 
    op.addImage(imageSource); // source file 
    op.addImage(destinationPath); // destination file 
    // execute the operation 

    cmd.run(op); 
} 

Оба ImageSource и назначения являются временные файлы, созданные с помощью Java. Я проверил, что файл imageSource имеет правильный размер, но после запуска этого кода целевой файл всегда 0 Kb.

Пожалуйста, сообщите, что я могу сделать неправильно?

+0

Вы установили или загрузили ImageMagick на свой webapp? Вы пытались запустить cmdline ImageMagick через Kudu Console, если они были установлены или загружены? –

+0

Извините за поздний ответ! Похоже, что на службе azure app, они являются виртуальными машинами Windows Server, а мой локальный компьютер - mac, а Image magick для Windows не поддерживает преобразование удаленных URL-адресов http-изображений, поэтому я получил 0Kb Image. –

+0

Кажется, что вы решили проблему. Спасибо за ваш обмен. –

ответ

1

Отвечая на мой собственный вопрос, чтобы он помог другим разработчикам, которые могут столкнуться с этой проблемой.

Служба Azure App обычно имеет виртуальные машины Windows Server. Вы можете проверить ОС своего сервера в журналах веб-контейнеров.

Изображение Магия для окон не позволяет преобразовывать удаленные http URL-адреса изображений, а для Unix-системы это позволяет. Мой локальный компьютер - MAC. Поэтому он корректно работал в моей локальной системе.

2 решения этой проблемы, которые я нашел:

  1. Либо вы используете Linux-VM на Azure

  2. В приложении загрузить URL изображения на временный файл и питания абсолютный путь этого временного файла к магии изображения для преобразования .

Я пробовал оба и оба работают.

 Смежные вопросы

  • Нет связанных вопросов^_^