Может ли GIMP разделить изображение на несколько изображений?

я сканировал много фотографий в последнее время, более чем по одному за раз. Теперь у меня есть несколько JPEG-файлов, каждый из которых содержит несколько фотографий.

могу ли я, используя GIMP, "разбить" jpg на 3 файла меньшего размера ?

что я использовал, чтобы сделать это : скопируйте jpg 3 раза, и обрезать другую картинку в каждой копии.

там должен быть более простой способ сделать это !

EDIT: есть ли плагин, который может это сделать ? Я осмотрелся, но нашел только плагины, которые изображение на кусочки одинакового размера.

26
задан user3246152
25.01.2023 10:01 Количество просмотров материала 3336
Распечатать страницу

10 ответов

утилиты. Это инструмент командной строки, но удивительно мощный и гибкий, поэтому стоит усилий, чтобы его изучить. Например:

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

где:

  • 1024x1024 - ширина и высота требуемой культуры
  • +0+0 смещения x и y в исходное изображение

вы можете вставить десятки этих команд в .файл cmd и запустить их без особых усилий.

посмотреть Документация ImageMagick, чтобы видеть, что существуют тысячи опций к этим командам. Очень мощный инструмент и с открытым исходным кодом тоже!

21
отвечен Zond 2023-01-26 17:49

вы можете сделать это так:

  • прямоугольник выберите изображение
  • Edit - > Copy
  • Правка - > Вставить как - > новое изображение
15
отвечен Michael Borgwardt 2023-01-26 20:06

Michael's Paste as - > New Image работает, но я обычно использую Cut, а не Copy, поэтому я не дублирую контент.

6
отвечен Bob Weber 2023-01-26 22:23

Я использую Разделить Отсканированные Изображения плагин, который хорошо работает.

5
отвечен Raymond 2023-01-27 00:40

для того чтобы сделать его быстро, вы можете использовать:

Ctrl + D дублировать изображение

Shift + C обрезать изображения

Ctrl + S сохранить

4
отвечен nekrum 2023-01-27 02:57

вы можете разделить изображение в GIMP в виде строки-столбца с помощью направляющих строк и инструмента гильотина (резак для бумаги). От руководство пользователя GIMP:

в дополнение к сетке изображений, GIMP также предоставляет более гибкий тип позиционирования: направляющие. Это горизонтальные или вертикальные линии, которые можно временно отображать на изображении во время работы над ним.

создать руководство, просто нажмите на одну из линеек в окне изображения и вытащить направляющая, удерживая нажатой кнопку мыши. Затем направляющая отображается в виде синей пунктирной линии, которая следует за указателем. Как только вы создадите направляющую, активируется инструмент "переместить" и указатель мыши меняется на значок перемещения.

команда "гильотина" разрезает текущее изображение, основываясь на направляющих изображения. Он разрезает изображение вдоль каждой направляющей, подобно нарезке документов в офисе с помощью гильотины (резак для бумаги) и создает новые изображения из кусков. Вы можно получить доступ к этой команде из меню Изображения через Image -> преобразование -> гильотина.

3
отвечен Milche Patern 2023-01-27 05:14

Я сделал скрипт на основе ответа от Zond. Он будет плитка файл изображения в соответствии с входными параметрами пользователя. Скрипт выглядит следующим образом:

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

# 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=
tile_size_y=

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

# Number of columns (vertical) in the tileset.
columns=
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 "и" convert " из ImageMagick. Я не уверен, что Windows cmd обеспечивает sh в собственном пути, в этом случае можно взглянуть на этой теме, чтобы получить sh работает. Кроме того, ImageMagick должен быть установлен в системе и ярлык для инструмента конвертировать в та же папка, в которой будет выполняться сценарий.

  • Я тестировал только с изображениями png. Надеюсь, это поможет.
1
отвечен Vitor 2023-01-27 07:31

вот еще одно: разделите одно изображение на четыре. Значения должны быть введены вручную в сценарий ниже, в зависимости от размера исходного изображения. Используйте инструмент ImageMagick "идентифицировать" или "файл", чтобы проверить ширину и высоту исходного изображения.

посмотреть параметры командной строки для 'извлечения', чтобы увидеть, как "геометрия" указан.

#!/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 2023-01-27 09:48

скрипт Витора для linux с 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=

# 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=
tile_size_y=

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

# Number of columns (vertical) in the tileset.
columns=
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 2023-01-27 12:05

Я написал простой GIMP плагин для сохранения текущего выделения в формате JPG (фиксированное качество).

Это требует от вас вручную выберите каждая фотография. Имена выходных файлов создаются автоматически.

получить/изменить на GitHub

Screenshot

Input vs output

0
отвечен Andy Joiner 2023-01-27 14:22

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх