Upload any size image into carousel
You shouldn't need to create a custom plugin to do that.

You can easily create a Matrix content field for your carousel. Create a new block called slide. From there you can create an asset field to upload the slide image.

You can render this into whatever markup you'd like (even bootstrap).

As for cropping an image and converting it into a jpg, check out Aviary Image Editor. It's a wysiwyg editor in the admin panel for doing exactly what you are looking for.