2013-04-28 4 views
13

Das ist vielleicht eine blöde Frage, aber wie findet man die Bildbreite und -höhe in Pixeln?RMagick - wie finde ich die Pixel-Dimension eines Bildes

image.x_resolution und image.y_resolution beide zurück 0 aus irgendeinem Grund.

+0

'x_resolution' und' y_resolution' sind Eigenschaften, die mit Ausgabegeräten zu tun haben - z.B. Pixel pro Zoll. –

Antwort

42
require 'rmagick' 
img = Magick::Image.ping('demo.png').first 
width = img.columns 
height = img.rows 

Hinweis .ping Methode Kommentare importiert würden. Wenn Sie das Bild lesen müssen, um es zu verarbeiten, dann verwenden Sie Magick::Image.read('demo.png').first - die Verwendung von ping funktioniert in diesem Standalone-Code und beschleunigt die Verarbeitung für einige Bildtypen, in denen IM nur einen Headerblock lesen kann. Dies ist nützlich in Fällen, in denen Sie das Bild nicht selbst laden müssen, um daran arbeiten zu können.

+0

Danke, mein Herr, das beantwortet meine Frage. – fiiv

+2

Wenn Sie nur an den Bildmetadaten interessiert sind, sich aber nicht für die Pixeldaten interessieren, sollten Sie 'ping' anstelle von' read' verwenden. Siehe [die Doc-Seite] (http://www.imagemagick.org/RMagick/doc/ilist.html#ping) – Kelvin

+1

Etwas sauberer imo: 'img = Magick :: Image.read ('demo.png') [0 ]; width, height = image.columns, image.rows' – mahemoff