क्या GIMP एक छवि को कई छवियों में विभाजित कर सकता है?


20

मैं हाल ही में बहुत से फ़ोटो स्कैन कर रहा हूं, एक बार में एक से अधिक। अब मेरे पास एक से अधिक jpegs हैं, जिनमें से प्रत्येक में कई फ़ोटो हैं।

क्या मैं जीआईएमपी का उपयोग कर सकता हूं, एक jpg को 3 छोटी फाइलों में विभाजित कर सकता है?

मैं जो करता था वह है: 3 बार jpg कॉपी करें, और प्रत्येक कॉपी में एक अलग तस्वीर क्रॉप करें।

ऐसा करने का एक आसान तरीका होना चाहिए!

संपादित करें: क्या कोई प्लगइन है जो ऐसा कर सकता है? मैंने चारों ओर देखा है, लेकिन केवल उन प्लगइन्स को पाया है जो एक छवि को समान आकार के टुकड़ों में काटते हैं।


क्या आप एक उदाहरण चित्र संरचना पोस्ट कर सकते हैं? मैं क्या देख रहा हूँ अगर तस्वीरें खाली जगह से अलग हो जाती हैं या एक-दूसरे से टकरा जाती हैं ...
जेम्स Mertz

जवाबों:


21

ImageMagick । यह एक कमांड-लाइन टूल है, लेकिन इसे सीखने के प्रयास के लायक आश्चर्यजनक रूप से शक्तिशाली और लचीला है। उदाहरण के लिए:

convert -extract 1024x1024+0+0 original.png target.png

कहाँ पे:

  • 1024x1024 आवश्यक फसल की चौड़ाई और ऊंचाई है
  • + 0 + 0 मूल छवि में x और y ऑफसेट हैं

आप इन कमांड के दर्जनों को एक .cmd फ़ाइल में चिपका सकते हैं और उन्हें आसानी से चला सकते हैं।

देखने के लिए ImageMagick दस्तावेज़ीकरण देखें इन आदेशों के हजारों विकल्प हैं। एक बहुत शक्तिशाली उपकरण और खुला स्रोत भी!


1
ImageMagick जिम्प से कैसे संबंधित है?
मिल्के पैटर

15

आप इसे इस तरह से कर सकते हैं:

  • आयत एक छवि का चयन करें
  • संपादित करें -> कॉपी करें
  • संपादित करें -> चिपकाएँ -> नई छवि

6

माइकल की पेस्ट के रूप में -> नई छवि काम करती है, लेकिन मैं आमतौर पर कॉपी के बजाय कट का उपयोग करता हूं ताकि मैं सामग्री की नकल न करूं।


6

आप GIMP में एक छवि को गाइड-पंक्तियों और गिलोटिन (पेपर कटर) टूल के साथ एक पंक्ति-स्तंभ तरीके से विभाजित कर सकते हैं। से GIMP प्रयोक्ता मैनुअल :

छवि ग्रिड के अतिरिक्त, जीआईएमपी आपको अधिक लचीली प्रकार की पोजिशनिंग सहायता भी प्रदान करता है: गाइड। ये क्षैतिज या ऊर्ध्वाधर रेखाएं होती हैं जिन्हें आप अस्थायी रूप से एक छवि पर प्रदर्शित कर सकते हैं जब आप इस पर काम कर रहे होते हैं।

एक गाइड बनाने के लिए, बस छवि विंडो में शासकों में से एक पर क्लिक करें और माउस बटन दबाए रखते हुए एक गाइड खींचें। गाइड को फिर नीली, धराशायी रेखा के रूप में प्रदर्शित किया जाता है, जो सूचक का अनुसरण करता है। जैसे ही आप एक गाइड बनाते हैं, "मूव" टूल सक्रिय हो जाता है और माउस पॉइंटर मूव आइकन में बदल जाता है।

गिलोटिन कमांड छवि के मार्गदर्शकों के आधार पर वर्तमान छवि को काट देता है। यह प्रत्येक गाइड के साथ छवि को काटता है, एक गिलोटिन (पेपर कटर) के साथ कार्यालय में दस्तावेजों के टुकड़े करने के समान है और टुकड़ों से नई छवियां बनाता है। आप इमेज -> ट्रांसफॉर्मेशन -> गिलोटिन के माध्यम से इमेज मेनूबार से इस कमांड को एक्सेस कर सकते हैं ।


धन्यवाद यह मेरी फिल्म स्ट्रिप्स के लिए अच्छा काम करता है। मैं पहले एक उत्साही फसल करता हूं, गाइडों को बिछाने में आसान बनाने के लिए
ऑस्टिन

5

इसे जल्दी से बनाने के लिए आप इसका उपयोग कर सकते हैं:

Ctrl+ Dनकल करने छवि
Shift+ Cछवियों फसल के लिए
Ctrl+ Sको बचाने के लिए



2

मैंने JPG (निश्चित गुणवत्ता) के रूप में वर्तमान चयन को बचाने के लिए एक सरल Gimp प्लगइन लिखा।

इसके लिए आपको प्रत्येक फोटोग्राफ को मैन्युअल रूप से चुनना होगा । आउटपुट फ़ाइल नाम स्वतः उत्पन्न होते हैं।

इसे प्राप्त करें / GitHub पर संशोधित करें

स्क्रीनशॉट

इनपुट बनाम आउटपुट


1

मैंने ज़ोंड के उत्तर के आधार पर एक स्क्रिप्ट बनाई है। यह उपयोगकर्ता इनपुट मापदंडों के अनुसार आपकी छवि फ़ाइल को टाइल करेगा। स्क्रिप्ट इस प्रकार है:

# Usage:
#
# sh crop.sh <tileset_image_file> <tileset_image_width> <tileset_image_height> <tile_size_X> <tile_size_y>
#
# Example:
#   sh crop.sh tileset01.png 128 192 32 32
#
# - Will generate 24 tiles of 32x32 named tile1.png, tile2.png, ..., tile24.png
#

# Your tileset file. I've tested with a png file.
origin=$1

# Control variable. Used to name each tile.
counter=0

# Location of the tool that we are using to extract the files. I had to create a shortcut of the tool in the same folder as the script.
program=convert.exe

# The size of the tile (32x32)
tile_size_x=$4
tile_size_y=$5

# Number of rows (horizontal) in the tileset.
rows=$2
let rows/=tile_size_x

# Number of columns (vertical) in the tileset.
columns=$3
let columns/=tile_size_y

# Tile name prefix.
prefix=tile

# Tile name sufix.
sufix=.png

echo Extracting $((rows * $columns)) tiles...

for i in $(seq 0 $((columns - 1))); do

    for j in $(seq 0 $((rows - 1))); do

        # Calculate next cut offset.
        offset_y=$((i * tile_size_y))
        offset_x=$((j * tile_size_x))

        # Update naming variable.
        counter=$((counter + 1))

        tile_name=$prefix$counter$sufix

        echo $program -extract $tile_size"x"$tile_size"+"$offset_x"+"$offset_y $origin $tile_name
        $program -extract $tile_size_x"x"$tile_size_y"+"$offset_x"+"$offset_y $origin $tile_name
    done
done
echo Done!

स्क्रिप्ट "sh" और ImageMagick से "कन्वर्ट" टूल के साथ काम करती है। मुझे यकीन नहीं है कि अगर विंडोज़ cmd एक देशी तरीके से sh प्रदान करता है, तो इस मामले में कोई भी इस विषय पर एक नज़र डाल सकता है ताकि वह काम कर सके। इसके अलावा, सिस्टम में ImageMagick स्थापित किया जाना चाहिए और उसी फ़ोल्डर में कनवर्ट टूल के लिए एक शॉर्टकट जिसमें स्क्रिप्ट चलेगी।

  • मैंने केवल png छवियों के साथ परीक्षण किया है। आशा करता हूँ की ये काम करेगा।

0

यहाँ एक और है: एक एकल छवि को चार में विभाजित करें। मानों को नीचे दी गई स्क्रिप्ट में मैन्युअल रूप से डालना होगा, यह इस बात पर निर्भर करता है कि आपकी मूल छवि कितनी बड़ी है। मूल छवि की चौड़ाई और ऊंचाई की जांच करने के लिए ImageMagick टूल "आइडेंटिफाई" या "फाइल" टूल का उपयोग करें।

देखें '-extract' के लिए आदेश पंक्ति विकल्प कैसे एक 'ज्यामिति' निर्दिष्ट किया जाता है देखने के लिए।

#!/bin/bash

ORIGINAL=Integration_Tree.png

NEW_WIDTH=2598   # 1/2 of the original width
NEW_HEIGHT=1905  # 1/2 of the original height

NEW_SIZE="${NEW_WIDTH}x${NEW_HEIGHT}"
POS_IMG0="0+0"
POS_IMG1="${NEW_WIDTH}+0"
POS_IMG2="0+${NEW_HEIGHT}"
POS_IMG3="${NEW_WIDTH}+${NEW_HEIGHT}"

for X in 0 1 2 3; do
   VAR="POS_IMG${X}"
   NEW_GEOMETRY="${NEW_SIZE}+${!VAR}" # cunning use of bash variable indirection
   CMD="convert -extract ${NEW_GEOMETRY} \"${ORIGINAL}\" \"out${X}.png\""
   echo $CMD
   convert -extract ${NEW_GEOMETRY} "${ORIGINAL}" "out${X}.png"
   if [[ $? != 0 ]]; then
      echo "Some error occurred" >&2
      exit 1
   fi
done

0

शेक के साथ लिनक्स के लिए विटर लिपि। मुझे केवल तीन लाइनें बदलनी थीं।

#!/usr/bin/env sh
# Usage:
# sh crop.sh <tileset_image_file> <tileset_image_width> <tileset_image_height> <tile_size_X> <tile_size_y>
#
# Example:
#   sh crop.sh tileset01.png 128 192 32 32
#
# - Will generate 24 tiles of 32x32 named tile1.png, tile2.png, ..., tile24.png
#

# Your tileset file. I've tested with a png file.
origin=$1

# Control variable. Used to name each tile.
counter=0

# Location of the tool that we are using to extract the files. I had to create a shortcut of the tool in the same folder as the script.
program=convert

# The size of the tile (32x32)
tile_size_x=$4
tile_size_y=$5

# Number of rows (horizontal) in the tileset.
rows=$2
rows=$((rows / $tile_size_x))

# Number of columns (vertical) in the tileset.
columns=$3
columns=$((columns / $tile_size_y))

# Tile name prefix.
prefix=tile

# Tile name sufix.
sufix=.png

echo Extracting $((rows * $columns)) tiles...

for i in $(seq 0 $((columns - 1))); do

    for j in $(seq 0 $((rows - 1))); do

        # Calculate next cut offset.
        offset_y=$((i * tile_size_y))
        offset_x=$((j * tile_size_x))

        # Update naming variable.
        counter=$((counter + 1))

        tile_name=$prefix$counter$sufix

        echo $program -extract $tile_size"x"$tile_size"+"$offset_x"+"$offset_y $origin $tile_name
        $program -extract $tile_size_x"x"$tile_size_y"+"$offset_x"+"$offset_y $origin $tile_name
    done
done
echo Done!
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.