سؤال الجمع بين صور متعددة باستخدام ImageMagick


أرغب في دمج صور متعددة في صورة واحدة باستخدام برنامج ImageMagick. لشرح أفضل قليلاً ، أريد أن تبدو النتيجة مشابهة لهذه:

هذا ، لدي عدد من لقطات الشاشة ، وأريد تحويلها إلى صورة واحدة مع الصور الأصلية فوق بعضها البعض.

بواسطة Googling ، لقد صادفت الأمر "المركب" ، ولكن لا أعرف ما إذا كان ، وفي هذه الحالة كيفية استخدامه للحصول على النتيجة التي أريدها.


148
2018-05-30 18:30


الأصل


هل تفقدت أمثلة imagemagick متعددة طبقة الصورة؟ - timbooo
stackoverflow.com/questions/12076293/... - Ciro Santilli 新疆改造中心 六四事件 法轮功


الأجوبة:


لأي عدد من ملفات الإدخال اسمه in-<شيئا ما>.jpg:

convert -append in-*.jpg out.jpg

لكي يتم إلحاق ملفات محددة ، أو تخطي الأرقام بدلاً من الحصول على "الكرة الأرضية" الكاملة ، يمكنك ذكر ملفات الإدخال بوضوح ووضع append القيادة بعد ذلك

convert in-1.jpg in-5.jpg in-N.jpg + إلحاق out-in1-plus-in5-and-inN.JPG

يمكنك استخدام -append (بدلا من +append) للعزل العمودي.

أو:

montage -mode concatenate -tile 1x in-*.jpg out.jpg

سيعمل أيضًا على إنشاء ملف out.jpg يحتوي على سلسلة رأسية من الصور المصدر.

convert

لسلسلة بسيطة في صف واحد أو عمود ، فإن append خيار من convert أداة كافية. لاحظ أن -append بتسلسل جميع الصور رأسيًا ، مع إنشاء عمود واحد مع ن الصفوف، و +append بتسلسل أفقيا ، مع إنشاء صف واحد به ن الأعمدة.

(نرى ImageMagick: خيارات سطر الأوامر.)

montage

للحصول على تحكم أفضل في التخطيط ، نحتاج إلى montage أداة. montage -mode concatenate سوف لصق الصور المدخلة معا مثل append الخيار و -tile 1x يتحكم في التخطيط ليتم تطبيقها.

tile يتبع الشكل أعمدة×الصفوف، ولكن قد يكون أي من الجانبين مفقودًا montage سوف معرفة كيفية تلبية القيود.

كانوا يستخدمون 1x (بالضبط عمود واحد مع أي عدد من الصفوف) هنا للحصول على نفس التأثير -append. بدون -tile 1x، ستنضم إلى الصور مثل +append، متخلفا ل -tile x1 (أي عدد من الأعمدة في صف واحد).

(نرى أمثلة ImageMagick: المونتاج ، المصفوفات من الصور.)


226
2018-05-30 19:37



شكر. إلحاق يعمل بشكل جيد ، لكنني أعتبر المونتاج مكسورًا: إذا لم يتم تثبيت خطوط ghostscript ، فسيتم إنقاذها ، حتى إذا لم تكن تذييل الصور. يجب تحميل الخطوط حسب الطلب ، وليس مسبقًا. - Bram
Bram: لم أكن أعلم ذلك وأوافق بشدة. هل تعرف إذا كان سلوك GraphicsMagick هو نفسه؟ - peth
كيف أتخطي كل صورة أخرى؟ أود تحليل مجموعة فرعية - في - 1 ، في - 3 ، في - 5 ، وما إلى ذلك. - Mike Robinson
MikeRobinson convert -append `counter=0; for x in in-*; do if [[ $(($counter % 2)) == 0 ]]; then echo $x; fi; counter=$((counter + 1)); done` out.jpg يجب القيام بهذه المهمة. - gozzilli
peth: إجابتك تبدأ بمثال convert الأمر الذي لديه -append  قبل أسماء ملفات الإدخال. مستخدم مجهول أضاف مثالاً مع +append  بعد أسماء ملفات الإدخال. هل هذين صحيحين؟ هل الطلب مهم؟ - Scott