Wordpress Plugin: Scissors

303Stephan27th Oct 2008Portfolio

Scissors is a plugin for the WordPress blogging system that adds cropping, resizing, and rotating functionality to Wordpress’ image upload and management dialogs. Scissors also allows automatic resizing of images when they are uploaded and supports automatic and manual watermarking of images. Additionally, images that are resized in the post editor are automatically resampled to the requested size using bilinear filtering when a post is saved, which improves the perceived image quality while reducing the amount of data transferred at the same time.

Scissors was translated into a total of 20 languages by WordPress users and remains popular among users of WordPress versions 2.8 and prior with a download count of more than 80,000 on Jan 1st, 2010. As of version 2.9 of WordPress, image editing functionality based on the Scissors code comes out of the box. I therefore decided to stop maintenance of the plugin, but others picked up where I left off: Anton Huizinga created a version of Scissors that is compatible with WordPress 2.9, which I would like to explicitly recommend to people who enjoy using Scissors’ features that have not yet been integrated into the WP core.

Screencast

http://www.vimeo.com/7363026

303 Comments Comments Feed

  1. Barry (November 24, 2008, 8:32 pm).

    I noticed the plugin doesn’t take the extra ‘large’ size available in 2.7 into account. If ‘large’ is selected, the original image is cropped.

  2. PerS (December 4, 2008, 12:07 am).

    I got it working on wpmu

    1) copied the scissors directory to muplugins/scissors

    2) created a “loader” (muplugins/scissors-loader.php):
    include_once (ABSPATH . MUPLUGINDIR . “/scissors/scissors.php”);

    3) modified muplugins/scissors/scissors.php:

    $scissors_dirname = plugin_basename(dirname(__FILE__));
    if (function_exists(‘is_site_admin’)) { // i.e. is WPMU
    load_muplugin_textdomain(’scissors’, MUPLUGINDIR . ‘/’ . $scissors_dirname . ‘/i18n’);
    $url = get_bloginfo(‘wpurl’) . ‘/’ . MUPLUGINDIR . ‘/’ . $scissors_dirname;
    } else {
    load_plugin_textdomain(’scissors’, PLUGINDIR . ‘/’ . $scissors_dirname . ‘/i18n’);
    $url = plugins_url($scissors_dirname);
    }

  3. mark (December 9, 2008, 12:37 pm).

    Stephan,
    I would like to change to scissors, and I love the interface. I have a blog with many users, it’s a club site, and finding the right images for individual users becomes a problem. We solved that with Pers image manager, which was able to create new folders for each user, and upload to those folders.

    Will scissors ever be able to create folders, so that my users can find “their” pictures or are we stuck with the wordpress method of automatic sorting?

    Image manager is a ‘little’ clunky, but its real advantage for a multi user site was the ability to manage the upload folder to sort the pictures.

    I have a bit of an issue with wordpress control on this point, as its not difficult to nominate a folder *before* upload, or indeed create it before upload.

  4. Stephan (December 9, 2008, 6:43 pm).

    Hi Mark,

    Thanks for your kind words! I’m glad you like the plugin.

    The ability to create folders and manage your pictures is something I would conceptually separate from the functionality that scissors provides, which is all about modifying the pictures with simple cropping and resizing. Therefore, Scissors won’t come with this functionality in the future.

    However, I could very well think about a second plugin (which at best should play along nicely with Scissors) that allows picture folder management. I’ll take a look at the Wordpress 2.7 code tomorrow to find out if the implementation of such a plugin would be possible without too much coding required (I’m kind of running short on time these days).

    Take care,
    Stephan

  5. Seven of Your Favorite, Most Indispensable WordPress Plugins — Kingdom Geek (December 10, 2008, 5:33 am).

    [...] Honorable mention: Scissors. [...]

  6. Sproke (December 14, 2008, 2:34 am).

    Hey there Stephen
    I’m with Mark on this one. I was sad to see my most favourite ImageManager with an RIP sign next to it. I only used the plugin for easy uploading into separate files (I have lots of photos, and sorting them the typical WP way of year/month is just not sorted enough for me).

    The one downside for ImageManager was that you could only upload one photo at a time.

    I would love love love to have a plugin where you could specify the folder the file was uploaded into, and it would be even better if it were easy to upload many files at once.

    However, thankyou for Scissors. I’ve uploaded and working well. Thanks for your input to the Wordpress community!!

    Heidi :0)

  7. Ryan (December 14, 2008, 5:34 pm).

    Use it. Love it. Thanks for an amazingly efficient and easy-to-use plugin.

  8. eas (December 15, 2008, 4:29 am).

    Thanks for this plugin, it’s very handy.

    I have a suggestion/feature request that you might consider.

    My wife usually inserts her images into her post using the visual editor, and then plays with the sizing until the layout seems right. The downside of this is that users either end up downloading bigger images than they need (with the browser doing the resizing), or she has to resize and reupload the images.

    I found scissors because I was looking for a way for her to resample/resize the images in Wordpress itself, and it does a great job, but I wonder if you’ve thought of integrating it even further, so that it would be possible to use the resizing built in to the visual editor, and then easily resample using scissors. It could be a button added to the overlay you get when you hover over an image in the visual HTML editor, or it could be added to the modal overlay you get when you click to edit an image in the visual editor. Having cropping accessible through this part of the UI would also be helpful.

    It would also be cool if, when cropping, there was an option to create a copy and leave the original alone.

    Thanks again!

  9. Stephan (December 15, 2008, 1:04 pm).

    Hey Heidi!
    Thanks for your input! I’m investigating the possibility of creating a new plugin that would allow some sort of virtual folders for your Wordpress images. Or maybe something similar to image tagging for simple categorization of images.
    Maybe I can post an early version on my blog soon, but don’t hold your breath. With Christmas coming up, I don’t really feel like spending a lot of my time on new projects. There are other things that need my attention now, heh.
    Take care! Hope you have a great holiday season,
    Stephan

  10. Stephan (December 15, 2008, 1:17 pm).

    Eas, thanks for your suggestion!

    You’re making a great point there: I think a lot of people add images to their blog posts similarly to your wife, i.e. they insert the image and then resize it to fit the text flow. The obvious drawback of that method is the client-side image resizing that takes place, which negatively affects image quality and/or download size.

    I’d be happy if Wordpress got rid of the notion of thumbnails/medium/large/full-sized images. I think it would be great if it was possible to insert an image into your article, resize and crop it in the editor and have it automatically stored in the optimal resolution on the server; just like you described it.

    Sadly, it’s currently not possible to write plugins for the article editing interface. Any solution I could come up with would be some sort of hack that would require you to overwrite existing WP files. Something I’d discourage anyone to do; it would probably cause a lot of headaches in the long run.

    Maybe it will be possible in the next version of Wordpress?

    Anyway, have a great holiday season!
    Stephan

  11. Elise (December 18, 2008, 12:58 pm).

    Hello Stephan,

    Just trying your plugin today because Flexible Upload is not updated anymore and does not work at all with 2.7. I do quit FU, now. I found your plugin and I got an error when I try to resize my pics. It says :
    Fatal error: Call to undefined function imagecreatefromjpeg() in /Shared Items/web/helene/blog/wp-content/plugins/scissors/scissors.php on line 384
    Crop does the same error… Do you have a solution ? Do I need GD on my server ? Thanks

  12. Stephan (December 18, 2008, 1:23 pm).

    I’m afraid installing the GD library on the server is the only solution for this problem because Scissors requires its png/jpeg/gif-functionality to do its job. I hope GD is an option for you …

  13. Li-An (December 19, 2008, 4:24 pm).

    Hello,
    I’ve made a french translation. Can you send me an email so I can send you the files ?
    Will you include a Lightbox option in a next release ? In this case, I won’t have to use Flexible Upload anymore :-)

  14. Stan-Lee (December 19, 2008, 5:41 pm).

    I love the idea behind the plugin. i have been searching for something like this for a long time.

    However, whenever i try to crop an image, I get an error box that says “Invalid post ID.”

    Any ideas?

  15. transalpin (December 19, 2008, 11:35 pm).

    Hallo Stephan!
    I have no idea what GD is, but I’m seeing a similar js alert as Elise:
    <br />
    <b>Warning</b>: imagejpeg() [<a href='function.imagejpeg'>function.imagejpeg</a>]: gd-jpeg: JPEG library reports unrecoverable error: in <b>/path-to/wp-content/plugins/scissors/scissors.php</b> on line <b>335</b><br />
    done;full,368,207

    The automatic installation via the plugin page in WP 2.7 didn’t work either. I’m on 1&1, PHP4, if that helps anything.
    Grüße aus Wien!

  16. Stephan (December 20, 2008, 10:57 am).

    Hey transalpin!
    I think the problem you’re experiencing has something to do with the installation of the GD library on your server, which is used for all the image processing Scissors does under the hood. For a solution head over to http://www.phpbuilder.com/board/archive/index.php/t-10249838.html .
    Grüße zurück aus Linz!
    Stephan

  17. Faisal Khan (December 31, 2008, 1:34 am).

    Hi Stephan,

    Hats off to your plugin! really really handy!

    One question though! Can I actually make the uploader automatically resize picture on upload?

    The thing is that I would have the exact place-holder on the site with exact width-height. Would it be possible for me to resize the uploaded picture automatically and not have to do one by one?

    I will be very thankful for any of your assistance.

    Kind Regards!

  18. 4webmasters » Top 1000 WordPress Plugin Authors (December 31, 2008, 2:56 am).

    [...] Scissors [...]

  19. En.nicuilie.eu Blogs » Top 1000 WordPress Plugin Authors (December 31, 2008, 9:06 am).

    [...] Scissors [...]

  20. Stephan (January 1, 2009, 12:38 pm).

    Good morning!

    Resizing on upload is already a part of Wordpress! It allows you to specify the desired size of your medium and large image (in addition to the size of the thumbnail). You may want to look into that, or maybe consider the use of Flexible Upload, which is a plugin that addresses this problem.

    Your second question is about suppressing the creation of thumbnails and medium and large versions of an uploaded image, if I understand you correctly, I don’t know of any plugin that does this.

    Have a happy new year,
    Stephan

  21. jk blog » Neujahrsputz beendet « (January 2, 2009, 11:03 am).

    [...] Plug-Ins zur Bildbearbeitung (Scissors) und Youtube-Einbindung (Smart Youtube) [...]

  22. Tom (January 3, 2009, 1:51 pm).

    Hallo Stephan,
    erstmal danke für dein Plugin. Super Sache, dass die Thumbnails einen bestimmten Bereich zeigen können! :)
    Ich hab aber nen Bug gefunden: Wenn die Einstellung zum korrekten Beschneiden des Thumbnails in den WP-Einstellungen nicht anhakt, die Thumbnails also proportional zum Original werden, ergibt
    $cropThumbnails = get_option("thumbnail_crop"); leider nicht 0 sondern “”. Damit wird “scissors” nicht erzeugt und nichts geht mehr. Hat ne Weile gedauert bis ich raushatte, warum es in einem Blog geht und im anderen nicht. Hier besser mit empty() oder sowas prüfen.
    Weiter viel Spaß beim entwickeln! :)

  23. » B. Frank Joy, LLC » Blog Archive jkovis.com (January 17, 2009, 8:26 am).

    [...] 404 Notifier All In One SEO Pack Attachment Extender cformsII Classy wp_list_pages Role Manager Scissors Share This Tiny MCE Advanced WordPress Database [...]

  24. Benson (January 18, 2009, 11:47 pm).

    Very nice plugin! Thank you, Thank you, Thank you!

  25. Gustavo Caetano (January 22, 2009, 10:24 pm).

    When I crop it says FAILED TO SAVE NEW IMAGE

    Why is that?

  26. Kath (January 26, 2009, 7:34 am).

    Your plugin looks great! Haven’t used it yet because it’s not quite what I’m looking for .. I also need to add custom image sizes… and to change default cropping behavior (like instead of centering a crop, cropping from the bottom or top). I haven’t seen if your plugin can do the last thing yet, didn’t check. Anyway if you know of any plugins that allow one to set custom image sizes, please let me know — and if you add it, or create a new plugin for it, I’ll be watching! I may use this in the meantime.

  27. Shack Dougall (January 28, 2009, 10:04 pm).

    Wonderful plugin! The way that it integrates with the default uploader is magical! :-)

    I agree with others that we need watermarking, but it’s possible that we might be able to get it from separate plugin.

    I found the Marekki’s Watermark plugin and it almost does the job. It’s a good match for Scissors because it does one thing only: it just puts watermarks on the uploaded images. It does a great job and almost works with Scissors.

    There are two problems with Marekki’s Watermark. First, you have to edit wp-admin/includes/media.php, one of the core wordpress files to make it work. You only need to add a single line, but still I hate modding the core files.

    The other problem is that it puts the watermark on the image before Scissors has a chance to crop it. This isn’t a problem if you are using the resize feature of Scissors, but when you use Scissors to crop, you end up cropping the watermark.

    My hope is that it might be relatively easy to add support Marekki’s Watermark to Scissors. If we’re lucky then all we would need to do is to add a single function call to Marekki’s Watermark at an appropriate place in Scissors. It could check to see if Marekki’s Watermark is installed and if it is then call it after the crop is performed.

    This would have two benefits. It would give watermarking capability to Scissors through Marekki’s Watermark and it would eliminate the need to edit the core files when installing Marekki’s Watermark.

    I haven’t had a chance yet to look at the Scissors code, but it seems like it might be an easy win.

  28. Colin (February 2, 2009, 5:17 am).

    Hi,
    Whenever I click crop the loading bar just continues to scroll indefinitely.. No error is displayed.
    Am I missing something?

  29. Stephan (February 2, 2009, 8:30 am).

    Kath: Scissors should be able to do all that.

    Shack: Haha, thanks! Watermarking support has been requested several time in the past. I never got around to implementing it, though, due to a lack of time and interest (I don’t think I’d use watermarking on my blog). Nevertheless, Marekki’s Watermark is a great find – thank you! – and I’ll try to integrate it with Scissors in the future.

    Colin: No idea! Maybe you’re using an outdated browser, have JavaScript disabled (necessary for AJAX to work), or have a bad installation of Wordpress/Scissors …

  30. Colin (February 2, 2009, 1:26 pm).

    Thanks for the reply Stephan, I’ve tested it multiple computers and asked multiple writers to try and they all bug at the same area.

    Could it be possible it’s a memory or a write permission somewhere?

  31. Matt (February 4, 2009, 10:32 pm).

    just found this superb plugin, but being a blog with lots of our own high quality photo’s we need a water marking feature. It’d be great if you could incorporate this into your plugin.

    Regardless of this I may have a look at adding watermarking functionality to your plugin.

  32. 25 WordPress Plugins you need to have a better blog | WebScienceMan (February 12, 2009, 6:03 pm).

    [...] Scissors This plugin adds cropping and resizing functionality to Wordpress’ image upload and management [...]

  33. Deryk Wenaus (February 17, 2009, 6:28 pm).

    this plugin simply rocks!!!

  34. Maximus (February 17, 2009, 11:04 pm).

    Colin: the same issue.
    I have fedora 10 + Wordpress 2.7.1 = scissors .95. I’ve tested it on several client/browsers (Firefox mac/linux, IE, Safari) – every time I want to use crop or resize “the loading bar just continues to scroll indefinitely..”.

    I have gd/php-gd installed.
    Any ideas?

  35. wordpress:Scissors(画像リサイズ・トリミングプラグイン) | Chibiの覚え書き (February 18, 2009, 2:40 am).

    [...] 導入してないですが、使えそうなので覚え書き。 Wordpress Plugin: Scissors – Brücken nach Übersee 画像アップ後にトリミングや、リサイズが出来る様です。 [...]

  36. Stephan (February 18, 2009, 9:35 am).

    Maximus: Use the development version of the plugin. It might fix the problem for you.

  37. Tx8 (February 19, 2009, 5:16 pm).

    Hi Stephan,

    I just tried out your plugin it’s very promising.
    I used “flexible upload” for a long time but its developmement stopped recently and the plugin compatibility for the forthcoming WP releases is probably compromised.

    If I may, you should implement

    - the watermark function, optional for each image (on upload or resize as many other comments suggest)
    - custom (re)size on upload (for each thumbnails and full images)
    - overlay libraries (lightbox, thixbox, greybox…)

    Yeah bassically take over the main functions of the very usefull flexible upload. It would be great. Keep up the good work.

  38. Een lijst met mijn 27 favoriete WordPress plugins - Hiranthi’s weblog (February 21, 2009, 8:28 pm).

    [...] Scissors – de mogelijkheid om je afbeelding (vanaf het uploaden) te croppen/resizen; [...]

  39. brandon (February 21, 2009, 8:55 pm).

    @colin and maximus, the development version does in fact fix the stall after hitting crop.

  40. eas (February 23, 2009, 4:02 am).

    Stephan, I stopped by to see if I could find out what’s changed in the new version of the plugin, but I wanted to comment on some of the feature requests here.

    I hope you won’t give in to requests to add watermarking, a pretty pony, or other features that 1) you don’t think you’ll use yourself an/or 2) could reasonably be added via another plugin, like say, wp-superpony.

    Before people jump down my throat for trying to deny them a pony, try looking at it this way. Would you rather Stephan put his energy into maintaining, and maybe even improving, what Scissors already does? Or would you rather he try to add new features and end up getting tired of working on all of them?

    Personally, I’d rather have the former.

    Thanks again for a great plugin.

  41. Li-An (February 23, 2009, 12:54 pm).

    Well, as Scissors did not want to work with me, I left it but everything is alright now with last version. But it does not do what I want :-) for the moment: I use Flexible Upload to resize the thumbnail (not the final image) and it seems I cannot manage this in your plugin (or I must use the crop menu ?).

  42. Stephan (February 23, 2009, 1:14 pm).

    Li-An: Scissors adheres to the thumbnail dimensions set in the WordPress configuration. So, if you want to change the size of your thumbnails you’re best off doing that there.

    Erik: Thanks for the kind words and your support! I really appreciate that. :-)

    The motivation for introducing new features I wouldn’t use myself is not that big. Additionally, I don’t have a lot of time for serious plugin development right now, which is why there haven’t been a lot of updates lately. (It’s complicated …)
    Watermarking will be a part of Scissors at some point in the future, most likely using Marekki’s Watermarking plugin that Shack mentioned … I don’t know *when* though, please be patient guys.

    P.S. 0.96 was mostly a bug-fix release, which won’t affect installations where Scissors already works.

  43. Li-An (February 23, 2009, 2:38 pm).

    The problem is that I need two dimensions of thumbnails (you can see why here: http://www.li-an.fr/blog/?p=3111).
    Well, I will go on with Flexible Upload for the moment :-)

  44. Tx8 (February 24, 2009, 8:03 pm).

    ON CROP, I have a popup :

    Warning: Invalid argument supplied for foreach() in /home/xxxxxxxxxx/www/wp/wp-content/plugins/scissors/scissors.php on line 216
    done;full,796,449

  45. Mister Peabody (February 26, 2009, 3:59 pm).

    Wonderful! My main issue with Wordpress, image uploading, and Lightbox/Thickbox/etc. has been that the Full Size Image, when blown up into the lightbox pop-up, was too large (filled up entire screen). That’s why I used Flexible Upload. But your plugin integrates with the image uploader perfectly.

    Therefore: I would like to be able to preset the width of the Full Size image when uploaded in a preferences section, so that it does it automatically every time!

    I wish that this was a preference in the Wordpress settings (Thumb, Medium + Full sizes)

    Put up a donate button on your site!

  46. Stephan (February 27, 2009, 5:36 pm).

    Thanks for your input! I’ve created a page where you can donate cat food for my cat Bruno at http://stephanreiter.info/donate

    Also, I’m already at work to support the feature you requested! You can expect it to be present in the next version of the plugin. For a screenshot of the modified media options page go to http://skitch.com/stereo/bgeq7/media-settings-new

  47. My current wordpress setup « Head.SmackOnTable(); (February 27, 2009, 8:08 pm).

    [...] Scissors [...]

  48. Stephan (February 28, 2009, 12:17 pm).

    Alrighty! The new feature is part of the current development version, which can be downloaded from http://downloads.wordpress.org/plugin/scissors.zip

    Enjoy! Feedback is – as always – very welcome.

  49. abdelmotaleb (March 5, 2009, 9:24 pm).

    hello,
    first, i want to thank you for this awsome plugin, i’ve been 3 hours googling to find something similair.
    I want to send you an arabic translation, but i can’t edit the mo file.

Add a Comment