void slideshow_save_image(winwidget win) { char *tmpname; Imlib_Load_Error err; if (win->file) { tmpname = feh_unique_filename("", FEH_FILE(win->file->data)->name); } else if (mode) { char *tmp; tmp = estrjoin(".", mode, "png", NULL); tmpname = feh_unique_filename("", tmp); free(tmp); } else { tmpname = feh_unique_filename("", "noname.png"); } if (opt.verbose) fprintf(stderr, "saving image to filename '%s'\n", tmpname); ungib_imlib_save_image_with_error_return(win->im, tmpname, &err); if (err) feh_imlib_print_load_error(tmpname, win, err); free(tmpname); return; }
void feh_edit_inplace(winwidget w, int op) { int ret; Imlib_Image old; Imlib_Load_Error err; if (!w->file || !w->file->data || !FEH_FILE(w->file->data)->filename) return; if (!strcmp(gib_imlib_image_format(w->im), "jpeg")) { feh_edit_inplace_lossless(w, op); feh_reload_image(w, 1, 1); return; } ret = feh_load_image(&old, FEH_FILE(w->file->data)); if (ret) { if (op == INPLACE_EDIT_FLIP) { imlib_context_set_image(old); imlib_image_flip_vertical(); } else if (op == INPLACE_EDIT_MIRROR) { imlib_context_set_image(old); imlib_image_flip_horizontal(); } else gib_imlib_image_orientate(old, op); ungib_imlib_save_image_with_error_return(old, FEH_FILE(w->file->data)->filename, &err); gib_imlib_free_image(old); if (err) feh_imlib_print_load_error(FEH_FILE(w->file->data)->filename, w, err); feh_reload_image(w, 1, 1); } else { im_weprintf(w, "failed to load image from disk to edit it in place"); } return; }