Bisakah GIMP membagi gambar menjadi beberapa gambar?


20

Saya telah memindai banyak foto baru-baru ini, lebih dari satu sekaligus. Saya sekarang memiliki beberapa jpeg, masing-masing berisi banyak foto.

Bisakah saya, menggunakan GIMP, "membagi" jpg menjadi 3 file yang lebih kecil?

Yang biasa saya lakukan adalah: menyalin jpg 3 kali, dan memotong gambar yang berbeda di setiap salinan.

Pasti ada cara yang lebih mudah untuk melakukan ini!

EDIT: Apakah ada plugin yang bisa melakukan itu? Saya telah melihat-lihat, tetapi hanya menemukan plugin yang "memotong" gambar menjadi potongan-potongan dengan ukuran yang sama.


dapatkah Anda memposting contoh struktur gambar? Apa yang saya cari adalah jika gambar dipisahkan oleh ruang kosong atau saling bertabrakan ...
James Mertz

Jawaban:


21

ImageMagick . Ini adalah alat baris perintah tetapi luar biasa kuat dan fleksibel sehingga sepadan dengan upaya untuk mempelajarinya. Sebagai contoh:

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

Dimana:

  • 1024x1024 adalah lebar dan tinggi tanaman yang dibutuhkan
  • + 0 + 0 adalah offset x dan y ke dalam gambar asli

Anda dapat menempelkan lusinan perintah ini ke dalam file .cmd dan menjalankannya dengan mudah.

Lihatlah dokumentasi ImageMagick untuk melihat ada ribuan opsi untuk perintah ini. Alat yang sangat kuat dan sumber terbuka juga!


1
Bagaimana ImageMagick terkait dengan Gimp?
Milche Patern

15

Anda dapat melakukannya seperti ini:

  • Rectangle pilih gambar
  • Edit -> Salin
  • Edit -> Tempel sebagai -> Gambar Baru

6

Michael's Paste as -> New Image berfungsi, tapi saya biasanya menggunakan Cut daripada Copy jadi saya tidak menggandakan konten.


6

Anda dapat membagi gambar dalam GIMP dengan cara baris-kolom dengan baris panduan dan alat guillotine (pemotong kertas). Dari Panduan Pengguna GIMP :

Selain kisi gambar, GIMP juga memberi Anda jenis bantuan pemosisian yang lebih fleksibel: panduan. Ini adalah garis horizontal atau vertikal yang dapat Anda tampilkan sementara pada suatu gambar saat Anda mengerjakannya.

Untuk membuat panduan, cukup klik pada salah satu penggaris di jendela gambar dan tarik keluar panduan, sambil menahan tombol mouse ditekan. Panduan ini kemudian ditampilkan sebagai garis putus-putus berwarna biru, yang mengikuti pointer. Segera setelah Anda membuat panduan, alat "Pindahkan" diaktifkan dan penunjuk tetikus berubah menjadi ikon Pindahkan.

Perintah Guillotine memotong gambar saat ini, berdasarkan panduan gambar. Ini memotong gambar di sepanjang masing-masing panduan, mirip dengan memotong dokumen di kantor dengan guillotine (pemotong kertas) dan membuat gambar baru dari potongan-potongan. Anda dapat mengakses perintah ini dari menubar gambar melalui Image -> Transform -> Guillotine .


terima kasih ini bekerja dengan baik untuk strip film saya. saya melakukan tanaman yang bersemangat terlebih dahulu, untuk membuat panduan lebih mudah lebih cepat untuk meletakkan
austin

5

Untuk membuatnya cepat, Anda dapat menggunakan:

Ctrl+ Duntuk menduplikasi Gambar
Shift+ Cuntuk memotong gambar
Ctrl+ Suntuk menyimpan



2

Saya menulis plugin Gimp sederhana untuk menyimpan pilihan saat ini sebagai JPG (kualitas tetap).

Ini mengharuskan Anda memilih secara manual setiap foto. Nama file keluaran dibuat secara otomatis.

Dapatkan / modifikasi di GitHub

Tangkapan layar

Input vs output


1

Saya telah membuat skrip berdasarkan jawaban dari Zond. Ini akan mem-tile file gambar Anda sesuai dengan parameter input pengguna. Scriptnya adalah sebagai berikut:

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

Script berfungsi dengan "sh" dan alat "convert" dari ImageMagick. Saya tidak yakin apakah windows cmd menyediakan sh dengan cara asli, dalam hal ini orang dapat melihat topik ini untuk mulai bekerja. Selanjutnya, ImageMagick harus diinstal di sistem dan jalan pintas untuk alat konversi di folder yang sama di mana skrip akan dijalankan.

  • Saya hanya menguji dengan gambar png. Semoga ini bisa membantu.

0

Berikut ini adalah yang lain: Membagi satu gambar menjadi empat. Nilai harus dimasukkan secara manual ke dalam skrip di bawah ini, tergantung pada seberapa besar gambar asli Anda. Gunakan alat ImageMagick "identifikasi" atau alat "file" untuk memeriksa lebar dan tinggi gambar asli.

Lihat opsi baris perintah untuk '-extract' untuk melihat bagaimana 'geometri' ditentukan.

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

Script Vitor untuk linux dengan sh. Saya hanya perlu mengubah tiga baris.

#!/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!
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.