Skip to content

Instantly share code, notes, and snippets.

@irfnrdh
Last active March 25, 2025 05:01
Show Gist options
  • Save irfnrdh/ed3f5db0392b785e1a6a77a331473d35 to your computer and use it in GitHub Desktop.
Save irfnrdh/ed3f5db0392b785e1a6a77a331473d35 to your computer and use it in GitHub Desktop.
Cetak 5R Photo dalam Folder dibuat dalam 1 Kertas 2 Foto ukuran 5R atau 5 inch x 7 inch. Pastikan imagemagicknya ter install
#!/bin/bash
# Direktori tempat gambar-gambar disimpan
INPUT_DIR="input" # Ganti dengan direktori input gambar
OUTPUT_DIR="output" # Ganti dengan direktori output untuk gambar yang sudah diubah
# Membuat direktori output jika belum ada
mkdir -p "$OUTPUT_DIR"
# Ukuran 5R dalam piksel (untuk resolusi 300 DPI)
WIDTH=1500 # 5 inci = 1500 piksel (300 DPI)
HEIGHT=2100 # 7 inci = 2100 piksel (300 DPI)
# Ukuran A4 dalam piksel (untuk resolusi 300 DPI)
A4_WIDTH=2550 # 8.27 inci = 2550 piksel (300 DPI)
A4_HEIGHT=3508 # 11.69 inci = 3508 piksel (300 DPI)
# Padding di sekitar gambar dan kertas (dalam piksel)
PADDING=150 # 0.5 inci padding (300 DPI)
GAP=150 # 0.5 inci gap di antara gambar (300 DPI)
# Posisi gambar pertama dan kedua
X_OFFSET_LEFT=$(( (A4_WIDTH - WIDTH - GAP - WIDTH) / 2 )) # Posisi gambar pertama (kiri)
Y_OFFSET=$(( (A4_HEIGHT - HEIGHT) / 2 )) # Posisi vertikal untuk kedua gambar (ditengah)
X_OFFSET_RIGHT=$((X_OFFSET_LEFT + WIDTH + GAP)) # Posisi gambar kedua (kanan)
for IMAGE in "$INPUT_DIR"/*.{jpg,jpeg,png}; do
if [ -f "$IMAGE" ]; then
# Nama file tanpa ekstensi
FILENAME=$(basename "$IMAGE")
BASENAME="${FILENAME%.*}"
# Membuat gambar 5R
convert "$IMAGE" -resize ${WIDTH}x${HEIGHT}\! "$OUTPUT_DIR/${BASENAME}_5R.jpg"
# Menempatkan dua gambar pada satu halaman A4 dengan padding dan gap
convert -size ${A4_WIDTH}x${A4_HEIGHT} xc:white \
"$OUTPUT_DIR/${BASENAME}_5R.jpg" -geometry +${X_OFFSET_LEFT}+${Y_OFFSET} -composite \
"$OUTPUT_DIR/${BASENAME}_5R.jpg" -geometry +${X_OFFSET_RIGHT}+${Y_OFFSET} -composite \
"$OUTPUT_DIR/${BASENAME}_A4_with_gap.jpg"
fi
done
echo "Proses selesai!"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment