Skip to content

evg2108/rails-carrierwave-focuspoint

Repository files navigation

RailsCarrierwaveFocuspoint

CarrierWave extension for specifying focus point on image before they upload on server and cropped.

This gem based on helper tool of jquery.focuspoint javascript library (https://github.com/jonom/jquery-focuspoint)

Installation

in Gemfile

    gem 'rails-carrierwave-focuspoint'

Usage

For using this gem you must add fields focus_x:decimal and focus_y:decimal to your db table used for storing CarrierWave picture information. Use migration:

    class AddFocusToUsers < ActiveRecord::Migration
      def change
        add_column :users, :focus_x, :decimal
        add_column :users, :focus_y, :decimal
      end
    end

in CarrierWave uploader

    class UserAvatarUploader < CarrierWave::Uploader::Base
      include CarrierWave::MiniMagick
      
      version :small do
        process crop_with_focuspoint: [100, 100]
      end
      
      version :big do
        process crop_with_focuspoint: [300, 200]
      end
    end

in model

    class User < ActiveRecord::Base
        mount_uploader :avatar, UserAvatarUploader
    end

in .js file

    //= require focuspoint.js
    //= require_self
    
    $(document).ready(function() {
        document.focuspoint.init(file_input_id: 'user_avatar');
    });

in .css file

    /*
    *= require focuspoint_control.css
    */

in view template

    = form_for @user do |f|
        = f.input :avatar
        = f.focuspoint_control :avatar

LICENSE

This project rocks and uses MIT-LICENSE.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published