#android #imagemagick
#Android #imagemagick
Вопрос:
Я новичок в Android, поэтому хочу задать вопрос. Я хочу использовать ImageMagick
библиотеку для редактирования изображений в Android, но я не хочу использовать JMagick
интерфейс.
Кто-нибудь импортировал Imagemagick
на Android раньше? Если да, не могли бы вы, пожалуйста, дать мне несколько советов о том, как это сделать?
Ответ №1:
Я портировал его на Android, и код находится на github.
Комментарии:
1. Спасибо за ваш код. Но у меня возникли трудности с компиляцией вашего кода на моем компьютере. Можете ли вы объяснить, как работать с вашим кодом?
2. В последнем репозитории github включен скрипт перестройки. Вы можете взглянуть на это. По сути, вы изменили переменную SDK в этом скрипте, и все будет работать.
3. Я скачал код, но у меня возникли проблемы с его использованием. Прежде всего, я не могу его скомпилировать, он выдает некоторые ошибки freetype missing, поэтому я понял это. итак, из старого коммита. Теперь у меня возникли проблемы, потому что в пакете Magick много ссылок на java.awt, но я уверен, что awt недоступен в Android
4. Есть ли у вас исполняемые двоичные файлы для Android?
5. Как конвертировать фреймы в gif с его помощью?
Ответ №2:
Я думаю, что никто еще не портировал, но вы можете сделать это самостоятельно. В основном вам нужно будет получить исходные тексты и создать android.mk файл.
Есть несколько ссылок, которые помогли мне создать другую библиотеку:
- The Android.mk документация.
- Это краткое руководство.
Ответ №3:
Только что портировал его сюда, все еще отрывочно, но работает для большинства.
Ответ №4:
Используйте этот один, он был скомпилирован. это не awt; вам просто нужно скомпилировать тест apk.Вот тестовый пример:
public class TesteNdkActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
ImageInfo i = new ImageInfo("/sdcard/DCIM/Camera/IMG_20120226_230240.jpg");
MagickImage m = new MagickImage(i);
int newHeight = (int) ((640/(float)m.getWidth()) * m.getHeight());
m = m.scaleImage(640, newHeight);
m = m.cropImage(new Rectangle((640-480)/2, 0, 480, 480));
m = m.charcoalImage(0.5, 0.5);
try {
byte blob[] = m.imageToBlob(i);
FileOutputStream fos = new FileOutputStream(new File("/sdcard/foto_teste.jpg"));
fos.write(blob);
fos.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
catch (MagickException e) {
e.printStackTrace();
}
}
}
(текстовое приложение скроет картинку в большой двоичный объект)
У меня все получилось, у вас все получится.
Наслаждайтесь.
Комментарии:
1. Используйте этот github.com/paulasiimwe/Android-ImageMagick для ответа выше.
2. Как добавить это в Android Studio 1.5?
Ответ №5:
Вместо этого вы можете выбрать библиотеку opencv!
Комментарии:
1. Вот проблема: OpenCV ориентирован на компьютерное зрение, в то время как ImageMagick предназначен для более общей обработки изображений. Имеет смысл объединить обе библиотеки, но, на мой взгляд, использование OpenCV вместо ImageMagick, если у вас есть задача, которую может выполнить только ImageMagick, не имеет смысла.