Невозможно найти подходящую команду для Imagemagick's display
, чтобы избежать декораций. Просто нужно показать изображение, есть ли способ достичь этого или любая другая «основная» команда, которая может это сделать?Как показать изображение без декораций
ответ
Я предполагаю, что вы хотите отображать изображения без окна украшения. Существует много способов добиться этого, но я хотел бы отметить, что у вашего OS/desktop-менеджера, вероятно, есть что-то, что вы можете использовать.
Например, на моем mac, я могу использовать open
& qlmanage
для отображения изображений с минимальными размерами.
# Use OS defaults
open wizard.png
# or Quicklook
qlmanage -p wizard.png
YMMV. Есть также отличные альтернативы, перечисленные to this question.
display
утилита ImageMagick имеет те параметры, -immutable
, -backdrop
, & -window
варианты взаимодействия с системой отображения X11. Если вы не против плитки плитки X11, то -immutable
скроет дополнительные виджеты.
display -immutable -resize 40% wizard.png
Однако, если вы абсолютно не хотите декорации окна, то вам может понадобиться для роли собственного решения. Опция -window
установит изображение в качестве фона в текущее окно. Известно, что мне просто нужно создать окно без полей & захватить ID, чтобы перейти к identify
. См. this answer для создания окна без какого-либо украшения.
// simple_window (compile with `gcc -L/usr/X11R6/lib -lX11 -o simple_window simple_window.c')
#include <stdio.h>
#include <X11/Xlib.h>
int main(int argc, const char * argv[]) {
Display * root;
Window win;
int screen;
root = XOpenDisplay(NULL);
screen = DefaultScreen(root);
win = XCreateSimpleWindow(root,
RootWindow(root, screen),
10, 10,
400, 600,
0,
BlackPixel(root, screen),
WhitePixel(root, screen));
Atom win_type = XInternAtom(root, "_NET_WM_WINDOW_TYPE", False);
long value = XInternAtom(root, "_NET_WM_WINDOW_TYPE_DOCK", False);
XChangeProperty(root,
win,
win_type,
4, 32,
PropModeReplace,
(unsigned char *) &value, 1);
XMapWindow(root, win);
printf("Window created %lu\n", win);
XEvent e;
while(1) {
XNextEvent(root, &e);
if (e.type == KeyPress) {
break;
}
}
XCloseDisplay(root);
return 0;
}
Компиляция выше программы & бегущий будет распечатать текущее окно идентификатор; который, теперь я могу передать утилиту import
, чтобы записать изображение в качестве фона.
Немного взломать иш, но опять же, YMMV.
- 1. Building Boost без декораций имен файлов?
- 2. как показать изображение без пробелов
- 3. Показать изображение без gtk
- 4. Показать изображение без сохранения
- 5. Показать загружаемое изображение без ajax
- 6. Показать профиль Изображение без входа
- 7. Показать скрытое изображение без javascript
- 8. показать изображение частично без холста без рамки или без плагина
- 9. Показать изображение с помощью PopupWindow без XML
- 10. Показать изображение без записи его пути
- 11. Показать изображение без масштабирования для просмотра
- 12. Показать изображение без указания пути к файлу
- 13. Как показать изображение программно
- 14. Skimage: как показать изображение
- 15. Как показать изображение запуска
- 16. express.js как показать изображение?
- 17. Как показать изображение
- 18. Показать изображение как попугай
- 19. Как виджет показать изображение
- 20. Как показать изображение
- 21. Как показать сегментированное изображение?
- 22. Response.Write - Как показать изображение
- 23. Показать изображение без ссылки, если изображение не имеет никакой связи
- 24. Показать первое изображение и показать другое изображение
- 25. JavaScript: Как показать сжатое изображение
- 26. Как я могу показать изображение?
- 27. как показать изображение с сервера без его загрузки android
- 28. Как показать изображение на устройстве без каких-либо потерь качества
- 29. HTML, CSS: Как показать изображение во всем div без содержания
- 30. Как показать изображение из ссылки в DataGridView без его загрузки
Просто блестящий! – nightcod3r
Хороший ответ - работает хорошо. Мне нужно было добавить команду -I/opt/X11/include' в команду компиляции на моем iMac с помощью команды XQuartz. –