各位好!
如果在不使用任何插件,直接使用 mini_magick 裁剪数据库里面的图片? 我抄的上传图片的 MVC,不过就不知道怎么去裁剪: controller
class PhotoController < ApplicationController
def get
@photo = Photo.new
end
def save
@photo = Photo.new(params[:photo])
if @photo.save
redirect_to(action: 'show', id: @photo.id)
else
render(action: get)
end
end
def photo
@photo = Photo.find(params[:id])
img = MiniMagick::Image.open("#{@photo.data}")
img.resize!("200", "200")
send_data(img.to_blob,
filename: @photo.name,
type: @photo.content_type,
disposition: "inline")
end
def show
@photo = Photo.find(params[:id])
end
end
model
class Photo < ActiveRecord::Base
def uploaded_photo=(photo_field)
self.name = base_part_of(photo_field.original_filename)
self.content_type = photo_field.content_type.chomp
self.data = photo_field.read
end
def base_part_of(file_name)
File.basename(file_name).gsub(/[^\w._-]/, '')
end
end
views
get.html.erb
<%= form_for(:photo, url: {action: 'save'}, html: {multipart: true}) do |form| %>
comment: <%= form.text_field :comment %><br />
upload: <%= form.file_field "uploaded_photo" %>
<%= submit_tag("Upload File") %>
<% end %>
show.html.erb
<h3><%= @photo.comment %></h3>
<img src="<%= url_for(:action => 'photo', :id => @photo.id) %>" />
我还有一个想法是将图片转为 base64, 然后网页上直接使用 base64 访问图片. 不过这些方法我都无法使用 mini_magick 来裁剪! 是不是图片再从数据库里面拿出来时,已经是字符串了,无法使用 mini_magick 来裁剪。如果是的话要怎么才能裁剪?