Created
February 8, 2009 19:31
-
-
Save sprsquish/60470 to your computer and use it in GitHub Desktop.
Revisions
-
sprsquish revised this gist
Feb 8, 2009 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -4,5 +4,5 @@ <%= f.hidden_field :crop_y, :id => 'crop_y' %> <%= f.hidden_field :crop_w, :id => 'crop_w' %> <%= f.hidden_field :crop_h, :id => 'crop_h' %> <%= hidden_field_tag :crop_settings, @image_model.crop_settings.to_json %> <% end %> -
sprsquish revised this gist
Feb 8, 2009 . 3 changed files with 11 additions and 13 deletions.There are no files selected for viewing
This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -1,14 +1,14 @@ class ImageModelsController < ApplicationController before_filter :find_image_model, :only => [:update] def update if @image_model.update_attributes(params[:image_model]) @image_model.image.reprocess! end end protected def find_image_model @image_model = ImageModel.find params[:id] end end This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -1,8 +1,8 @@ <% form_for @image_model do |f| %> <div class='crop'><%= image_tag(@image_model.image.url) %></div> <%= f.hidden_field :crop_x, :id => 'crop_x' %> <%= f.hidden_field :crop_y, :id => 'crop_y' %> <%= f.hidden_field :crop_w, :id => 'crop_w' %> <%= f.hidden_field :crop_h, :id => 'crop_h' %> <%= hidden_field_tag :crop_settings, @image_model.crop_settings.to_json <% end %> This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -1,9 +1,7 @@ # Example usage of Jcropper # == Schema Information # Table name: image_models # # id :integer(4) not null, primary key # image_file_name :string(255) @@ -16,7 +14,7 @@ # crop_w :integer(4) default(0) # class ImageModel < ActiveRecord::Base has_attached_file :image, :styles => { :resized => '120x41>', -
sprsquish created this gist
Feb 8, 2009 .There are no files selected for viewing
This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,14 @@ class <redacted>Controller < ApplicationController before_filter :find_<redacted>, :only => [:update] def update if @<redacted>.update_attributes(params[:<redacted>]) @<redacted>.image.reprocess! end end protected def find_<redacted> @<redacted> = <redacted>.find params[:id] end end This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,14 @@ $(function() { function setCropMarks(c) { $('#crop_x').val(c.x); $('#crop_y').val(c.y); $('#crop_w').val(c.w); $('#crop_h').val(c.h); } $.globalEval('var cropSettings = '+$('#crop_settings').val()) $('.crop img').Jcrop({ setSelect: cropSettings, onChange: setCropMarks, onSelect: setCropMarks }); }); This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,31 @@ # Example usage of Jcropper # == Schema Information # Schema version: <redacted> # # Table name: <redacted> # # id :integer(4) not null, primary key # image_file_name :string(255) # image_content_type :string(255) # image_file_size :integer(4) # image_updated_at :datetime # crop_x :integer(4) default(0) # crop_y :integer(4) default(0) # crop_h :integer(4) default(0) # crop_w :integer(4) default(0) # class <redacted> < ActiveRecord::Base has_attached_file :image, :styles => { :resized => '120x41>', :cropped => '100%x100%' }, :processors => [:jcropper], :convert_options => { :all => proc { |m| "-crop #{m.crop_w}x#{m.crop_h}+#{m.crop_x}+#{m.crop_y}" } } def crop_settings [crop_x, crop_y, (crop_x+crop_w), (crop_y+crop_h)] end end This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,76 @@ # Jcropper paperclip processor # # This processor very slightly changes the default thumbnail processor in order to work properly with Jcrop # the jQuery cropper plugin. module Paperclip # Handles thumbnailing images that are uploaded. class Jcropper < Processor attr_accessor :current_geometry, :target_geometry, :format, :whiny, :convert_options # Creates a Thumbnail object set to work on the +file+ given. It # will attempt to transform the image into one defined by +target_geometry+ # which is a "WxH"-style string. +format+ will be inferred from the +file+ # unless specified. Thumbnail creation will raise no errors unless # +whiny+ is true (which it is, by default. If +convert_options+ is # set, the options will be appended to the convert command upon image conversion def initialize file, options = {} super geometry = options[:geometry] @file = file @crop = geometry[-1,1] == '#' @target_geometry = Geometry.parse geometry @current_geometry = Geometry.from_file @file @convert_options = options[:convert_options] @whiny = options[:whiny].nil? ? true : options[:whiny] @format = options[:format] @current_format = File.extname(@file.path) @basename = File.basename(@file.path, @current_format) end # Returns true if the +target_geometry+ is meant to crop. def crop? @crop end # Returns true if the image is meant to make use of additional convert options. def convert_options? not @convert_options.blank? end # Performs the conversion of the +file+ into a thumbnail. Returns the Tempfile # that contains the new image. def make src = @file dst = Tempfile.new([@basename, @format].compact.join(".")) dst.binmode command = <<-end_command "#{ File.expand_path(src.path) }[0]" #{ transformation_command } "#{ File.expand_path(dst.path) }" end_command begin success = Paperclip.run("convert", command.gsub(/\s+/, " ")) rescue PaperclipCommandLineError raise PaperclipError, "There was an error processing the thumbnail for #{@basename}" if @whiny end dst end # Returns the command ImageMagick's +convert+ needs to transform the image # into the thumbnail. def transformation_command scale, crop = @current_geometry.transformation_to(@target_geometry, crop?) trans = '' trans << " #{convert_options}" if convert_options? trans << " -resize \"#{scale}\"" trans << " -crop \"#{crop}\" +repage" if crop trans end end end This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,8 @@ <% form_for <redacted> do |f| %> <div class='crop'><%= image_tag(@<redacted>.image.url) %></div> <%= f.hidden_field :crop_x, :id => 'crop_x' %> <%= f.hidden_field :crop_y, :id => 'crop_y' %> <%= f.hidden_field :crop_w, :id => 'crop_w' %> <%= f.hidden_field :crop_h, :id => 'crop_h' %> <%= hidden_field_tag :crop_settings, @<redacted>.crop_settings.to_json <% end %>