জিম্প কি কোনও চিত্রকে একাধিক চিত্রে বিভক্ত করতে পারে?


20

আমি সম্প্রতি একাধিক ফটো স্ক্যান করছি one আমার কাছে এখন একাধিক জেপিগ রয়েছে, প্রত্যেকটিতে একাধিক ফটো রয়েছে।

আমি কি জিআইএমপি ব্যবহার করে একটি জেপিজিকে 3 টি ছোট ফাইলগুলিতে "বিভক্ত" করতে পারি?

আমি যা করতাম তা হ'ল: jpg 3 বার অনুলিপি করুন এবং প্রতিটি অনুলিপিতে আলাদা চিত্র কাটা করুন।

এটি করার একটি সহজ উপায় থাকতে হবে!

সম্পাদনা: এমন কোনও প্লাগইন রয়েছে যে এটি করতে পারে? আমি চারপাশে দেখেছি, তবে কেবলমাত্র এমন প্লাগইন পেয়েছি যা কোনও চিত্রকে সমান আকারের টুকরো টুকরো করে "কাট" করে।


আপনি একটি উদাহরণ চিত্র কাঠামো পোস্ট করতে পারেন? আমি যা খুঁজছি তা হল যদি ছবিগুলি ফাঁকা জায়গা দ্বারা পৃথক করা হয় বা একে অপরের সাথে নাইট করা হয় ...
জেমস মের্টজ

উত্তর:


21

ইমেজম্যাগিক । এটি একটি কমান্ড-লাইন সরঞ্জাম তবে আশ্চর্যজনকভাবে শক্তিশালী এবং নমনীয় এটি এটিকে শেখার প্রচেষ্টার পক্ষে মূল্যবান। উদাহরণ স্বরূপ:

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

কোথায়:

  • 1024x1024 প্রয়োজনীয় ফসলের প্রস্থ এবং উচ্চতা
  • + 0 + 0 হ'ল মূল চিত্রটিতে এক্স এবং ওয়াই অফসেট

আপনি এই কয়েক ডজন কমান্ড একটি .Cmd ফাইলে আটকে রাখতে পারেন এবং এগুলিকে অনায়াসে চালাতে পারেন।

এই কমান্ডগুলির হাজার হাজার বিকল্প রয়েছে তা দেখতে ইমেজম্যাগিক ডকুমেন্টেশনটি দেখুন। একটি খুব শক্তিশালী সরঞ্জাম এবং ওপেন সোর্স!


1
ইমেজম্যাগিক কীভাবে গিম্পের সাথে সম্পর্কিত?
মিলচে প্যাটার্ন

15

আপনি এটি এর মতো করতে পারেন:

  • আয়তক্ষেত্র একটি চিত্র নির্বাচন করুন
  • সম্পাদনা করুন -> অনুলিপি করুন
  • সম্পাদনা করুন -> নতুন চিত্র হিসাবে আটকান

6

মাইকেল এর পেস্ট হিসাবে -> নতুন ইমেজ কাজ করে, তবে আমি সাধারণত অনুলিপি চেয়ে কাট ব্যবহার করি যাতে আমি বিষয়বস্তুটির নকল না করি।


6

গাইড সারি এবং গিলোটিন (কাগজ কর্তনকারী) সরঞ্জাম দিয়ে আপনি একটি চিত্রকে সারি-কলামে জিম্পে ভাগ করতে পারেন। থেকে গিম্পের ইউজার ম্যানুয়াল :

চিত্র গ্রিড ছাড়াও, জিম্প আপনাকে আরও নমনীয় ধরণের অবস্থাননির্দেশ সহায়তা দেয়: গাইডগুলি। এগুলি অনুভূমিক বা উল্লম্ব লাইনগুলি যখন আপনি কোনও চিত্রের উপর কাজ করার সময় অস্থায়ীভাবে প্রদর্শন করতে পারেন।

গাইড তৈরি করতে, মাউস বোতামটি চেপে ধরে ইমেজ উইন্ডোতে যে কোনও একটি শাসককে ক্লিক করুন এবং একটি গাইড টানুন। এরপরে গাইডটি নীল, ড্যাশযুক্ত রেখা হিসাবে প্রদর্শিত হবে যা নির্দেশকের অনুসরণ করে। আপনি গাইড তৈরি করার সাথে সাথেই "মুভ" সরঞ্জামটি সক্রিয় হবে এবং মাউস পয়েন্টারটি মুভ আইকনে পরিবর্তিত হবে।

গিলোটিন কমান্ড চিত্রের গাইডের উপর ভিত্তি করে বর্তমান চিত্রটি টুকরো টুকরো করে। এটি গিলোটিন (পেপার কাটার) দিয়ে অফিসে নথির টুকরো টুকরো করার মতো প্রতিটি গাইডের সাথে চিত্রটি কাটা এবং টুকরো টুকরো করে নতুন চিত্র তৈরি করে। আপনি এই কমান্ডটি চিত্র মেনুবার থেকে চিত্র -> ট্রান্সফর্ম -> এর মাধ্যমে অ্যাক্সেস করতে পারেন গিলোটিনের


ধন্যবাদ এটি আমার ফিল্ম স্ট্রিপগুলির জন্য ভাল কাজ করে। গাইডদের আরও দ্রুততর করা সহজ করার জন্য আমি প্রথমে একটি উদ্যোগী ফসল করি
অস্ট্রিন

5

এটি দ্রুত করার জন্য আপনি ব্যবহার করতে পারেন:

Ctrl+ + Dঅনুরূপ চিত্র
Shift+ + Cইমেজ ক্রপ করতে
Ctrl+ + Sসংরক্ষণ করতে



2

আমি জেপিজি (স্থির মানের) হিসাবে বর্তমান নির্বাচনটি সংরক্ষণ করার জন্য একটি সাধারণ গিম্প প্লাগইন লিখেছি।

এর জন্য আপনাকে প্রতিটি ফটোগ্রাফি ম্যানুয়ালি নির্বাচন করতে হবে। আউটপুট ফাইলের নামগুলি স্বয়ংক্রিয়ভাবে উত্পন্ন।

এটি পান / গিটহাবে পরিবর্তন করুন

স্ক্রিনশট

ইনপুট বনাম আউটপুট


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" এবং ইমেজম্যাগিক থেকে "রূপান্তর" সরঞ্জাম নিয়ে কাজ করে। আমি নিশ্চিত নই যে উইন্ডোজ সিএমডি কোনও দেশীয় উপায়ে sh সরবরাহ করে, এক্ষেত্রে কেউ এই বিষয়টিকে একবার দেখে নিতে পারেন sh তদুপরি, সিস্টেমে ইমেজম্যাগিক অবশ্যই ইনস্টল করা উচিত এবং একই ফোল্ডারে রূপান্তর সরঞ্জামের জন্য একটি শর্টকাট যেখানে স্ক্রিপ্টটি চলবে।

  • আমি কেবল png ইমেজ দিয়ে পরীক্ষা করেছি। আশা করি এটা সাহায্য করবে.

0

এখানে অন্যটি রয়েছে: একটি একক চিত্রকে চার ভাগে ভাগ করুন। আপনার মূল চিত্রটি কতটা বড় তার উপর নির্ভর করে মানগুলি নীচে স্ক্রিপ্টে ম্যানুয়ালি রাখতে হবে। মূল চিত্রটির প্রস্থ এবং উচ্চতা পরীক্ষা করতে ইমেজম্যাগিক সরঞ্জাম "সনাক্ত করুন" বা "ফাইল" সরঞ্জামটি ব্যবহার করুন।

কীভাবে 'জ্যামিতি' সুনির্দিষ্ট করা হয়েছে তা দেখতে '-অক্ষেত্র'-এর জন্য কমান্ড লাইন বিকল্পগুলি দেখুন ।

#!/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

Sh সহ লিনাক্সের জন্য ভিজিটর স্ক্রিপ্ট। আমাকে কেবল তিনটি লাইন পরিবর্তন করতে হয়েছিল।

#!/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!
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.