2016-06-02 20 views
0

Ich möchte, dass ein Bild angezeigt wird, indem das Seitenverhältnis beibehalten wird, indem die Größe geändert wird, aber das Bild sieht gestreckt aus. Ich habe drei Bilder, alle 50 mal 50. Ich möchte, dass das linke Bild unter Beibehaltung des Seitenverhältnisses verkleinert wird. Die anderen beiden Bilder werden parallel zum ersten Bild nach oben und unten angezeigt. Ich denke Mosaik() bauen die vier Blöcke. aber ich will drei Blöcke, im ersten Block wird das erste Bild erscheinen und es wird bis zum Ende neu skaliert, und die nächsten beiden Blöcke werden die anderen zwei Bilder hoch und runter und parallel zum ersten zeigen. Im Folgenden wird der CodeWie man das verzerrte und gestreckte Bild in graphicsmagick steuert node.js

gm() 
     .in('-page', '+0+0') 
     .in('-resize', '50x100!') 
     .in('http://localhost:8080/image1') 
     .in('-page', '+50+0') 
     .in('http://localhost:8080/image2') 
     .in('-page', '+50+50') 
     .in('http://localhost:8080/image3') 
     .mosaic() 
     .write('C:/images/output.jpg', function (err) { 
      if (err) console.log(err); 
     }); 

I wie unten ein Bild will, aber mit seinem Seitenverhältnis zu halten, sieht schwarz Bild gestreckt, ich will es nicht gedehnt werden, und schwarzes Bild sollte ganz linken Bereich bis Ende

decken

enter image description here

Wenn ich entferne! das Bild sieht dann aus wie ich ein Bild wollen wie oben, aber nicht

enter image description here

+0

Entfernen Sie das '!', Wenn das Seitenverhältnis beibehalten werden soll. Schließen Sie das '!' Ein, wenn das Strecken erlaubt ist. –

+0

@MarkSetchell, Danke. Wenn ich es dann entfernen werde, muss ich noch die Länge eines Bildes bis zum Ende vergrößern, indem ich das Seitenverhältnis beibehalte. Wie kann ich das erreichen? –

+0

Fügen Sie '' extent MxN' 'nach der Größenanpassung hinzu, um den Bereich zu füllen - setzen Sie' -gravity center ', bevor Sie den' -extension' hinzufügen. Ein Diagramm würde helfen ;-) –

Antwort

0

streckte ich nicht node verwenden Sie aber ich denke, Sie in der Lage sein wird, diese anzupassen:

Machen Sie unsere drei Bilder:

convert -size 50x50 -background black -fill white -gravity center -pointsize 36 label:"1" image1.jpg 
convert -size 50x50 -background red -fill white -gravity center -pointsize 36 label:"2" image3.jpg 
convert -size 50x50 -background red -fill white -gravity center -pointsize 36 label:"3" image3.jpg 

Jetzt die Größe und ordnen:

convert image1.jpg -resize x100 -gravity center -extent 50x100 \(image2.jpg image3.jpg -append \) +append result.png 

enter image description here

Wesentlichen Ich bilde image1 100 Pixel hoch mit -resize x100 und dann den zentralen Pixel 50 breitbandigen Extrahieren der Mitte mit -gravity center -extent 50x100. Dann, in Klammern und "auf der Seite" Ich lade image2 und image3 und unter einander mit -append platzieren. Dieses Bildpaar wird dann mit +append rechts vom Originalbild angehängt und das Ergebnis wird auf result.png geschrieben.

+0

Mark, ist es wichtig, zuerst drei Bilder zu machen und dann die Größe zu ändern und anzuordnen? –

+0

Überhaupt nicht! Ich brauchte nur ein paar Bilder, um dir zu zeigen, wie ich es machen würde - ich habe dein nicht. –