it-swarm.asia

Bisakah GIMP membagi gambar menjadi beberapa gambar?

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.

19
Manu

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

21
Zond

Anda bisa melakukannya seperti ini:

  • Rectangle pilih gambar
  • Edit -> Salin
  • Edit -> Rekatkan sebagai -> Gambar Baru
14

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

6
Bob Weber

Saya telah menggunakan Membagi Gambar yang Dipindai plug-in yang berfungsi dengan baik.

5
Raymond

Untuk membuatnya cepat, Anda dapat menggunakan:

Ctrl + D untuk menduplikasi Gambar
Shift + C untuk memotong gambar
Ctrl + S untuk menyimpan

5
nekrum

Anda dapat membagi gambar dalam GIMP dengan cara kolom-baris dengan baris panduan dan alat guillotine (pemotong kertas). Dari Manual 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 gambar saat Anda mengerjakannya.

Untuk membuat panduan, cukup klik pada salah satu penggaris di jendela gambar dan tarik 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 Gambar -> Ubah -> Guillotine .

4
Milche Patern

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 bekerja dengan "sh" dan alat "convert" dari ImageMagick. Saya tidak yakin apakah windows cmd menyediakan sh dengan cara asli, dalam hal ini kita dapat melihat topik ini untuk membuat sh berfungsi. 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.
1
Vitor

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!
0
Jean

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
David Tonhofer

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

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

Dapatkan/modifikasi pada GitHub

Screenshot

Input vs output

0
Andy Joiner