2012-05-30 8 views
11

Ich aktualisiere meine App auf Rails 3.2 auf Ruby 1.9. Ich musste attachment_fu fallen lassen. Carrierwave schien der offensichtliche Ersatz zu sein. In diesem Stadium lade ich Dateien in das Dateisystem hoch (noch keine Cloud-Dateien).Carrierwave Error Msg: Fehler beim Bearbeiten mit MiniMagick, vielleicht ist es kein Bild?

ich auf Lion bin, XCode 4.3.2, Befehlszeilen-Tools installiert. Laufen:

$ brew doctor 
# Your system is raring to brew. 

Ich kann Bilder in dieser Konfiguration laden und die Größe:

  • Schienen 3.1.4
  • Rubin 1.8.7
  • carrierwave 0.5.8
  • mini_magick 3.4

ich kann Bilder in der neuen Konfiguration laden:

  • Schienen 3.2.3
  • rubin 1.9.3 (oder 1.9.2)
  • carrierwave 0.6.2

(gefolgt von $ bundle update), aber mini_magick gibt diese Fehlermeldung resizing Verwendung:

"File Failed to manipulate with MiniMagick, maybe it is not an image Original Error: MiniMagick::Invalid", where File is the carrierwave uploader. 

Der Fileuploader enthält:

include CarrierWave::MiniMagick 
def store_dir .. end # the shipped default 
process :resize_to_limit => [500, 600] 

Meine Anlage-Klasse (mit dem mount_uploader :file, FileUploader) ist ein Elternteil von Portrait, ReferenceLetter und andere Befestigungs Art von Klassen. Jede der Anhangsklassen erbt von Attachment, ist :polymorphic => true, und belongs_to :attachable (Benutzer), die wiederum has_many :portraits, :reference_letters usw. :as => :attachable.

Keine von diesen gearbeitet (von carrierwave der bekannten Probleme Seite verlinkt):

Why is this RMagick call generating a segmentation fault?

Ich wollte nicht ImageMagick manuell installieren, wie hier vorgeschlagen:

carrierwave + mini_magick gems = not an image error

I‘ m mit Homebrew. Hilfe wäre fantastisch. Vielen Dank.

+0

Ich habe es funktioniert aber vergessen, die Lösung hier zu buchen. Ich glaube, mein Problem war ein Namenskonflikt. Mein Datei-Uploader hieß FileUploader. Ersetzen Sie es mit einem AttachmentUploader behoben (oder so denke ich) das Problem: "Datei konnte nicht mit MiniMagick manipulieren, vielleicht ist es kein Bild? Original Fehler: MiniMagick :: Ungültig" Leider bin ich jetzt nicht 100% sicher, Es ist ein Jahr her. Wenn jemand mit einem Uploader namens FileUploader auf dieses Problem stößt und es mit einem anders benannten Uploader behebt, bestätigen Sie es bitte hier. – Arta

Antwort

15

Kämpfte heute mit dem gleichen Fehler.Das Problem war nicht in mini_magick, ist das Problem in DELEGIERTEN Optionen in Ihrem imagemagick

Wenn Sie

convert -list configure 

laufen sollten Sie diese so etwas wie haben

Name   Value 
----------------------------------------------------------------- 
... 
CONFIGURE  ./configure '--with-bzlib=yes' '--with-fontconfig=yes' '--with-freetype=yes' '--with-gslib=yes' '--with-gvc=yes' '--with-jpeg=yes' '--with-jp2=yes' '--with-png=yes' '--with-tiff=yes' '--disable-shared' 
CONFIGURE_PATH /usr/local/etc/ImageMagick/ 
COPYRIGHT  Copyright (C) 1999-2012 ImageMagick Studio LLC 
... 
DELEGATES  bzlib djvu fontconfig freetype gvc jpeg jng jp2 lcms lqr openexr png rsvg tiff x11 xml zlib 
... 
VERSION  6.7.5 

Aber in meinem Fall Schlüssel DELEGATES hatte nur xml- und zlib-Werte

DELEGATES  xml zlib 

Die Lösung war imagemagick von der Quelle zu installieren und params

1. wget http://www.imagemagick.org/download/ImageMagick.tar.gz 
2. tar xvfz ImageMagick.tar.gz 
3. cd ImageMagick 
4. ./configure --with-bzlib=yes --with-fontconfig=yes --with-freetype=yes --with-gslib=yes --with-gvc=yes --with-jpeg=yes --with-jp2=yes --with-png=yes --with-tiff=yes --disable-shared 
5. make 
6. sudo make install 
7. sudo ldconfig /usr/local/lib 
8. run again "convert -list configure" and look at changes 

Sie können Installationen Anweisungen für MacOS finden hier http://www.imagemagick.org/script/advanced-unix-installation.php

UPDATE

Aus irgendwelchen Gründen ein ./configure hinzufügen System kann ohne JPEG Convert-Bibliotheken sein. Um dies zu beheben Sie ImageMagick mit apt-get oder ppa mit allen benötigten Abhängigkeiten installieren oder versuchen zu installieren manualy

sudo apt-get install libjpeg62 

weitere Informationen finden Sie hier https://askubuntu.com/questions/211627/how-to-add-support-for-the-jpeg-image-format

UPDATE 01/26/2013

So installieren Sie libpng

Folgen Sie diesem Link http://www.libpng.org/pub/png/libpng.html und "Source Code" Block finden. Kopieren Sie einen Link für eine aktuelle Version

1. wget http://download.sourceforge.net/libpng/libpng-1.5.13.tar.gz 
2. tar xvfz libpng-1.5.13.tar.gz 
3. cd libpng-1.5.13/ 
4 ./configure 
5. make 
6. sudo make install 
7. Rebuild imagemagick 

Eine weitere Möglichkeit JPEG Unterstützung

1. curl -O http://www.ijg.org/files/jpegsrc.v8c.tar.gz 
2. tar zxvf jpegsrc.v8c.tar.gz 
3. cd jpeg-8c/ 
4. ./configure 
5. make 
6. sudo make install 
7. Rebuild imagemagick 
+0

Danke Danke!Bekam den gleichen obskuren Fehler "Fehler bei der Manipulation ..." und konnte es stundenlang nicht herausfinden. Ich habe ImageMagick mit Homebrew installiert (ich bin auf einem Mac) und Sie sind die Lösung von der Quelle installieren mit diesen Optionen wie ein Charme gearbeitet. DANKE!! – BFree

+0

Danke Ivan für die detaillierte manuelle Installation. Aber ich wollte, dass alles mit ImageMagick funktioniert, das über Homebrew installiert wurde, nicht manuell. Ich habe es funktioniert, es gibt keine Fehlermeldungen von MiniMagick. Es ist fast ein Jahr her, und ich habe vergessen, die Lösung hier zu posten, und ich habe in meinen Git-Logs keine relevanten Notizen gemacht. Meine beste Vermutung: Ich glaube, das Problem war ein Namenskonflikt. Siehe meinen Kommentar zu meiner eigenen Frage oben. – Arta

+0

Ich habe ImageMagick aus der Quelle nach diesen Anweisungen oben auf der IM von Brau installiert (benötigt, um JPEG-Unterstützung hinzuzufügen), alles funktioniert. @Arta Ich denke, du solltest diese sehr gute Antwort als akzeptiert markieren. – maksimov

9

Feb 2014

Ich lief in dieser Frage nur zu bekommen und war ganz aufgeregt zu verbringen Mein Tag kompiliert ImageMagick aus der Quelle, aber ich dachte, ich würde zuerst versuchen, eine brew update && brew upgrade imagemagick.

==> Upgrading 1 outdated package, with result: 
imagemagick 6.8.7-7 

Es hat funktioniert.

0

Stellen Sie zunächst sicher, dass Ihr Computer über alle erforderlichen Compiler und Tools verfügt.

sudo yum groupinstall "Development Tools" 
sudo yum install rpmdevtool libtool-ltdl-devel 

sudo yum install ImageMagick-devel 
Verwandte Themen