Last active
March 25, 2025 05:01
-
-
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/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=3508 # 11.69 inci = 3508 piksel (300 DPI) | |
| A4_HEIGHT=2550 # 8.27 inci = 2550 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) | |
| # Menyiapkan array untuk gambar-gambar yang ada | |
| IMAGES=("$INPUT_DIR"/*.{jpg,jpeg,png}) | |
| TOTAL_IMAGES=${#IMAGES[@]} | |
| # Array untuk menampung nama file yang akan dijadikan PDF | |
| PDF_FILES=() | |
| # Proses gambar per pasangan (foto 1 dan foto 2 untuk satu kertas) | |
| for ((i=0; i<TOTAL_IMAGES; i+=2)); do | |
| # Ambil dua gambar untuk setiap kertas | |
| IMAGE1="${IMAGES[$i]}" | |
| IMAGE2="${IMAGES[$((i+1))]}" | |
| # Nama file tanpa ekstensi | |
| BASENAME1=$(basename "$IMAGE1") | |
| BASENAME2=$(basename "$IMAGE2") | |
| FILENAME="${BASENAME1%.*}_${BASENAME2%.*}" | |
| # Membuat gambar 5R dari setiap foto | |
| convert "$IMAGE1" -resize ${WIDTH}x${HEIGHT}\! "$OUTPUT_DIR/${FILENAME}_5R_1.jpg" | |
| convert "$IMAGE2" -resize ${WIDTH}x${HEIGHT}\! "$OUTPUT_DIR/${FILENAME}_5R_2.jpg" | |
| # Menempatkan dua gambar pada satu halaman A4 dengan padding dan gap, orientasi landscape | |
| convert -size ${A4_WIDTH}x${A4_HEIGHT} xc:white \ | |
| "$OUTPUT_DIR/${FILENAME}_5R_1.jpg" -geometry +${X_OFFSET_LEFT}+${Y_OFFSET} -composite \ | |
| "$OUTPUT_DIR/${FILENAME}_5R_2.jpg" -geometry +${X_OFFSET_RIGHT}+${Y_OFFSET} -composite \ | |
| "$OUTPUT_DIR/${FILENAME}_A4_landscape_with_gap.jpg" | |
| # Menambahkan penamaan file yang diurutkan | |
| mv "$OUTPUT_DIR/${FILENAME}_A4_landscape_with_gap.jpg" "$OUTPUT_DIR/Page_$((i / 2 + 1)).jpg" | |
| # Menambahkan file gambar ke array PDF | |
| PDF_FILES+=("$OUTPUT_DIR/Page_$((i / 2 + 1)).jpg") | |
| done | |
| # Menggabungkan semua gambar menjadi satu PDF | |
| convert "${PDF_FILES[@]}" "$OUTPUT_DIR/output.pdf" | |
| echo "Proses selesai! PDF siap untuk dicetak: $OUTPUT_DIR/output.pdf" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment