рдХреИрдирд╡рд╛рд╕ рдкрд░ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд╕реНрдкреНрд░рд┐рдВрдХрд▓рд░

рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдЕрд╡рддрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдмрд▓ рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдорд╛рдирдХ рд╕рдорд╛рдзрд╛рди, рдЬреИрд╕реЗ рдХрд┐ рдЬреЗрдХреНрд░реЙрдк, рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рд░реНрд╡рд░ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рднреЗрдЬрддреЗ рд╣реИрдВ, рдФрд░ рдЫрд╡рд┐ рдлрд╕рд▓ рдХреЛ рд╕реНрд╡рдпрдВ рд╕рд░реНрд╡рд░ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдмреАрдЪ, рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдП рд╣реИрдВ рдЬрд╣рд╛рдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рддреБрд░рдВрдд рдРрд╕реА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЗрд╕рдиреЗ рдореБрдЭреЗ рдХреИрдирд╡рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рдЦреБрдж рдХреА рдлрд╕рд▓ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛, рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдЧрд╛ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╕ 64-рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдпрд╛рд░ рдЫрд╡рд┐ рдХреЛ рднреЗрдЬреЗрдЧрд╛ред рдХрд╛рд░реНрдп рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЛ рдЕрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╣рдореЗрдВ рд╕рд░реНрд╡рд░ рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛, рдкреЗрдЬ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрд╡рддрд╛рд░ рдХреЛ рддреБрд░рдВрдд рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рднреА рджреЗрдЧрд╛ред



рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдФрд░ рдЪреБрдиреМрддреА


рдХреНрд░реЛрдкрд╛рд▓реНрдХрд╛ рдХреЛ рдХреЙрдлреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ - рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдПрдХ рдЫреЛрдЯреА рднрд╛рд╖рд╛ред JQuery рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧ-рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдЬрд╛рдпрд╛ рдЧрдпрд╛ рдХреНрд░реЛрдкрд╛рд▓рдХрд╛ред рдЫрд╡рд┐ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЙрд╕ рдкрд░ рдлрд╕рд▓ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ - рдпрд╣ рдХреНрд╖реЗрддреНрд░ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдЫрд╡рд┐ рдкрд░ рдПрдХ рдХреИрдирд╡рд╛рд╕ рдЦреАрдВрдЪреЗрдЧрд╛ред рдЪрдпрдирд┐рдд рдХреНрд╖реЗрддреНрд░ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рдж, рдПрдХ рдирдИ рддрд╕реНрд╡реАрд░ рдЫрд╡рд┐ рдбреЗрдЯрд╛ рдореЗрдВ рджрд░реНрдЬ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрд╛рд╣рд░ рд╕реЗ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреНрд░реЛрдкрд╛рд▓рдХрд╛ рдХреЛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкрд╣рд▓реВ рдЕрдиреБрдкрд╛рдд рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕рдХреНрд░рд┐рдпрдг рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдЪрдпрди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред рдФрд░, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╕реНрдкреНрд░рд┐рдВрдХрд▓рд░ рдХреЛ рд╕рднреА рдкреНрд░рдореБрдЦ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рдЪрдпрди рдХреНрд╖реЗрддреНрд░ рдФрд░ рдЙрд╕ рдХреЛрдиреЗ рд╕реЗ рдкрд░реЗ рдЬрд┐рд╕ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд╣ Rect рд╡рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдХреБрдЫ рднреА рдЬрд╛рджреБрдИ рдирд╣реАрдВ рд╣реИ - рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдЧреБрдг, рдПрдХ рдмрд┐рдВрджреБ рд╣рд┐рдЯ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗред EvroneCrop рд╡рд░реНрдЧ рдХреИрдирд╡рд╛рд╕ рдмрдирд╛рдиреЗ, рдЪрд┐рддреНрд░ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЙрд╕реЗ рдЦреАрдВрдЪрдиреЗ, рд╣реИрдВрдбрд▓рд░ рдХреЛ рд▓рдЯрдХрд╛рдиреЗ рдФрд░ рдлрд╕рд▓реА рддрд╕реНрд╡реАрд░ рдХреЛ рдбреЗрдЯрд╛ рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

рдкрд░рд┐рдгрд╛рдореА рдЫрд╡рд┐ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдХреИрдирд╡рд╛рд╕ рддрддреНрд╡ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдЫрд╡рд┐ рдХреЗ рдореВрд▓ рдЖрдХрд╛рд░ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХреА toDataURL() , toDataURL() рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЪрдпрдирд┐рдд рдХреНрд╖реЗрддреНрд░ рдХреЛ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдХреИрдирд╡рд╛рд╕ рдореЗрдВ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХреИрдирд╡рд╛рд╕ рд╕реЗ toDataURL() рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЫрд╡рд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдЖрдзрд╛рд░ 64 рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдФрд░ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рд░реНрд╡рд░ (рд░реВрдмреА) рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
 encoded_image = params[:image].sub('data:image/png;base64,', '') avatar_io = FilelessIO.new(Base64.decode64(encoded_image)) avatar_io.original_filename = "avatar.png" #  ,    CarrierWave Rails.logger.info "IO: #{avatar_io.inspect}" @user.avatar = avatar_io @user.save 


рд╕реНрдкреНрд░рд┐рдВрдХрд▓рд░ рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдк рдирд┐рдореНрди рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 $(this).evroneCrop({ preview: '#preview1', //  img,     size: {w: 150, h: 150}, //   ratio: 1, //   ,    -  setSelect: 'center', //    log: true //   }); 

рд╕рднреА рдкреИрд░рд╛рдореАрдЯрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВред рдбреЗрдореЛ ред

setSelect рдорд╛рди center рд▓реЗ рд╕рдХрддрд╛ center , рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЫрд╡рд┐ рдХреЗ рдХреЗрдВрджреНрд░ рдФрд░ рдЪрдпрди рдХреЗ рдЖрдХрд╛рд░ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ {x:0, y: 0, w: 100, h: 100} рдФрд░ рдЪрдпрди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдерд╛рди рдкрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ ratio рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рд╣реИ, рддреЛ рдЖрдкрдХреЛ setSelect рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдКрдВрдЪрд╛рдИ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

ratio рд╢реВрдиреНрдп рд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рдЙрд╕ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд▓рдВрдмрд╛рдИ рд╡рд╛рд▓реЗ рдЕрдиреБрдкрд╛рдд рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП 1 рдпрд╛ 16/9 рдХреЗ рдкрд╣рд▓реВ рдЕрдиреБрдкрд╛рдд рдХреЗ рд▓рд┐рдП 16/9 рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд╕реНрдпрд╛рдПрдБ

рдкрд░рд┐рдгрд╛рдореА рдЯреВрд▓ рд╕рднреА рдкреНрд░рдореБрдЦ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдХреНрд░реЛрдо, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕> 4, рд╕рдлрд╛рд░реА, рдУрдкреЗрд░рд╛> 11, рдЖрдИрдИ 9. рдпреЛрдЬрдирд╛ рдореЗрдВ IE8 рдХреЗ рд▓рд┐рдП рдлреНрд▓реИрд╢рдмреИрдХ рдореЗрдВ рдПрдХ рдХрдордмреИрдХ рд▓рд┐рдЦрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ Google рдХреЗ рдПрдХреНрд╡рд╛рд╕рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рдереА, рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдзрд┐ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ toDataURL(); рдлреНрд▓реИрд╢ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд╛рд╕реНрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рд╣рд╛рде рдирд╣реАрдВ рдкрд╣реБрдВрдЪреЗ рд╣реИрдВред

рдХреНрд░реЛрдкрд╛рд▓рдХрд╛ рдЕрднреА рднреА рдирдо рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рдЖрдХрд╛рд░реЛрдВ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдЕрднреА рддрдХ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЧреАрдереВрдм , рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдзреАрд░реЗ-рдзреАрд░реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИред

Source: https://habr.com/ru/post/In133362/


All Articles