Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
gimp-plugins/save-export-clean.py
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
executable file
78 lines (65 sloc)
2.47 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# Save or export the current image -- do the right thing whether it's | |
# XCF (save) or any other format (export). This will mark the image clean, | |
# so GIMP won't warn you when you exit. | |
# Warning: this does not show a lot of extra dialogs, etc. or warn you | |
# if you're about to overwrite something! Use with caution. | |
# Copyright 2012 by Akkana Peck, http://www.shallowsky.com/software/ | |
# You may use and distribute this plug-in under the terms of the GPL v2 | |
# or, at your option, any later GPL version. | |
from gimpfu import * | |
import gtk | |
import os | |
import collections | |
def python_export_clean(img, drawable) : | |
filename = img.filename | |
if not filename : | |
chooser = gtk.FileChooserDialog(title=None, | |
action=gtk.FILE_CHOOSER_ACTION_SAVE, | |
buttons=(gtk.STOCK_CANCEL, | |
gtk.RESPONSE_CANCEL, | |
gtk.STOCK_OPEN, | |
gtk.RESPONSE_OK)) | |
# Might want to set a current folder: | |
save_dir = choose_likely_save_dir() | |
if save_dir : | |
chooser.set_current_folder(save_dir) | |
# Oh, cool, we could have shortcuts to image folders, | |
# and maybe remove the stupid fstab shortcuts GTK adds for us. | |
#chooser.add_shortcut_folder(folder) | |
#chooser.remove_shortcut_folder(folder) | |
response = chooser.run() | |
if response != gtk.RESPONSE_OK: | |
return | |
filename = chooser.get_filename() | |
img.filename = filename | |
chooser.destroy() | |
pdb.gimp_file_save(img, drawable, filename, filename) | |
pdb.gimp_image_clean_all(img) | |
def choose_likely_save_dir() : | |
counts = collections.Counter() | |
for img in gimp.image_list() : | |
if img.filename : | |
counts[os.path.dirname(img.filename)] += 1 | |
try : | |
return counts.most_common(1)[0][0] | |
except : | |
return None | |
register( | |
"python_fu_export_clean", | |
"Save or export the current image, then mark it clean.", | |
"Save or export the current image, then mark it clean.", | |
"Akkana Peck", | |
"Akkana Peck", | |
"2012", | |
"Save/Export clean", | |
"*", | |
[ | |
(PF_IMAGE, "image", "Input image", None), | |
(PF_DRAWABLE, "drawable", "Input drawable", None), | |
], | |
[], | |
python_export_clean, | |
menu = "<Image>/File/Save/" | |
) | |
main() | |