TIFF tidak harus hanya memiliki satu gambar: pemrosesan bingkai demi bingkai tidak akan melewatkan halaman.

Setelah TIFF dibuka, hanya halaman pertama yang diproses. Program ini tidak melaporkan kesalahan, namun konten lainnya hilang. Untuk format multi-frame, "berhasil membuka file" dan "memproses file sepenuhnya" adalah dua hal yang berbeda. Portal harus mengidentifikasi jumlah halaman sebelum memutuskan pemrosesan halaman demi halaman, batasan anggaran, dan daftar pengiriman.

TIFF mungkin berisi beberapa halaman gambar, dan hanya karena suatu program membuka file tersebut tidak berarti bahwa setiap halaman telah diproses. Jika hanya halaman pertama yang dibaca, program berakhir dengan normal, tetapi konten lainnya hilang. Artikel ini ditujukan bagi pengembang dan pekerja dokumen yang perlu melakukan pemindaian proses batch, gambar multi-bingkai, atau arsip multi-halaman. Ini menjelaskan cara mengidentifikasi jumlah halaman terlebih dahulu, memprosesnya bingkai demi bingkai, dan mencatat hasil setiap halaman.

Kode dalam artikel ini didemonstrasikan menggunakan sampel sintetis dan telah lulus pemeriksaan sampel di lingkungan yang terisolasi, namun ini tidak mewakili jaminan semua file atau efek produk yang sebenarnya. Sebelum memproses dokumen penting, harap simpan dokumen asli dan tinjau sesuai dengan batasan dan item penerimaan dalam teks.

Bagaimana TIFF multi-frame tidak melewatkan halaman? Kesimpulan satu kalimat

Pertama baca nomor halaman dan proses bingkai demi bingkai. Hasil setiap halaman harus dicatat, dan halaman yang hilang harus ditandai dengan jelas.

situasi AndaPraktik yang direkomendasikanalasan
Setiap halaman perlu digunakan secara independenSalin gambar saat ini saat melakukan iterasi, atau segera prosesObjek bingkai mungkin terkait dengan status penguraian kode yang mendasarinya, dan penyimpanan referensi secara langsung dapat dengan mudah memengaruhi satu sama lain.
File tersebut memiliki jumlah halaman yang banyak atau resolusi yang tinggiProses halaman demi halaman atau gunakan batch terkontrolMenyimpan semua frame di memori akan terus menghabiskan sumber daya
Spesifikasi mungkin berbeda dari halaman ke halamanUkuran dokumen, pola dan orientasi halaman demi halamanHalaman dalam dokumen yang sama belum tentu berukuran sama, dan halaman hitam putih dan berwarna dapat tercampur.
Pemrosesan halaman gagalCantumkan halaman yang hilang dan alasannya dalam daftarTidak bisa begitu saja mengembalikan dokumen dan menandai semuanya selesai

Salin gambar saat ini saat melakukan iterasi pada bingkai

ImageSequence.Iterator cocok untuk melakukan iterasi pada beberapa frame, tetapi objek frame mungkin terkait dengan status decoding yang mendasarinya. Jika setiap halaman nantinya akan digunakan secara terpisah, halaman tersebut harus disalin selama iterasi atau segera diproses. Jangan menyimpan referensi ke objek yang bisa diubah berulang kali dan berharap mendapatkan halaman yang tidak saling mempengaruhi.

Buatlah dua frame TIFF untuk memverifikasi bahwa tidak ada halaman yang terlewat

from io import BytesIO
from PIL import Image, ImageSequence

first = Image.new("RGB", (12, 8), "white")
second = Image.new("RGB", (12, 8), "black")
stream = BytesIO()
first.save(stream, format="TIFF", save_all=True, append_images=[second])
stream.seek(0)
with Image.open(stream) as document:
    assert document.n_frames == 2
    pages = [frame.copy() for frame in ImageSequence.Iterator(document)]
assert len(pages) == 2
assert pages[0].getpixel((0, 0)) == (255, 255, 255)
assert pages[1].getpixel((0, 0)) == (0, 0, 0)
pages[0].putpixel((0, 0), (255, 0, 0))
assert pages[1].getpixel((0, 0)) == (0, 0, 0)

Di sini, kedua halaman disimpan dalam memori, yang hanya cocok untuk contoh sintesis yang sangat kecil ini. File pindaian sebenarnya harus diproses halaman demi halaman atau menggunakan batch terkontrol, dan hasil setiap halaman harus dicatat. Semua bingkai resolusi tinggi tidak dapat disalin dan ditumpuk tanpa batas waktu.

Selain nomor halaman, terdapat perbedaan halaman demi halaman

Dalam file multi-frame yang sama, perbedaan antar halaman seringkali lebih besar dari yang dibayangkan. Saat memeriksa halaman demi halaman, disarankan untuk mencatat hal-hal berikut:

proyekMengapa memeriksa halaman demi halamanApa yang bisa direkam
ukuranHalaman dari file yang sama belum tentu berukuran samaLebar, tinggi dan jumlah piksel
modelHalaman hitam putih dan berwarna boleh tercampurMode asli dan strategi konversi
arahMungkin berbeda pada halaman berbedaPerubahan orientasi per halaman
status kegagalanKorupsi suatu halaman tidak boleh diabaikanNomor halaman, kategori kesalahan

Keberhasilan sebagian harus ditulis dengan jelas

Anda tidak bisa begitu saja kembali ke dokumen dan menandai semuanya selesai jika Anda baru memproses sembilan dari sepuluh halaman. Daftar pengiriman harus mencantumkan halaman yang hilang dan alasannya, memungkinkan pengguna memutuskan untuk mengirim ulang, menanganinya satu per satu, atau menerima pengiriman sebagian. Yang terbaik adalah menyimpan nomor sumber untuk nomor halaman tersebut, dan jangan memberi nomor ulang karena halaman tertentu gagal, jika tidak maka akan sulit bagi pengguna untuk kembali ke halaman asli.

Kelengkapan terjemahan dimulai dari input nomor halaman

Saat menggunakan alur kerja OmniDoc (portal produk) untuk memproses data pindaian multi-halaman, Anda dapat membandingkan daftar halaman masukan dengan rentang konten yang diterjemahkan. Jumlah halaman yang sama tidak secara otomatis membuktikan bahwa konten tersebut lengkap, tetapi halaman atau nomor halaman yang hilang adalah peringatan yang berharga. Pemeriksaan kewarasan harus dilakukan sebelum pemolesan bahasa.

📊 Perbandingan inti

praktikSkenario yang berlakuRisiko utama
Baca hanya halaman pertamatidak adaHalaman yang tersisa akan hilang secara diam-diam, dan program tidak akan melaporkan kesalahan.
Simpan referensi bingkai secara langsung saat melakukan iterasiHanya menonton sementaraKonten pada halaman berbeda mungkin saling mempengaruhi
Salin halaman demi halaman atau segera prosesSetiap halaman perlu digunakan secara independenDiperlukan pencatatan hasil tambahan per halaman
Simpan semua frame dalam memoriSampel kecil dengan beberapa halaman dan resolusi rendahFile multi-halaman resolusi tinggi terus menempati memori

🎯 Metode mana yang cocok untuk Anda?

Jika Anda perlu mengekspor atau menerjemahkan halaman demi halaman

Hitung dulu jumlah halamannya, lalu olah satu per satu, dan catat ukuran, cara, dan hasil pemrosesan setiap halaman.

Jika Anda berurusan dengan pemindaian resolusi tinggi dalam jumlah besar

Gunakan pemrosesan batch terkontrol untuk menghindari penyalinan semua frame dan menumpuknya di memori tanpa batas waktu.

Jika ingin diantar ke orang lain

Lampirkan daftar halaman yang hilang dan penjelasan mengapa halaman tersebut hilang, jangan hanya menandainya sebagai selesai.

❓ Pertanyaan yang Sering Diajukan (FAQ)

1. Jika program tidak melaporkan kesalahan, apakah berarti TIFF sudah diproses sepenuhnya?

tidak pasti. Contoh pada artikel menunjukkan bahwa program dapat berakhir normal ketika hanya halaman pertama yang dibaca, namun halaman sisanya terlewatkan. Berhasil membuka file dan memproses file sepenuhnya adalah dua hal yang berbeda.

2. Mengapa referensi setiap frame tidak dapat disimpan secara langsung?

Objek bingkai mungkin terkait dengan keadaan decoding yang mendasarinya. Untuk menggunakan setiap halaman secara independen, segera salin atau proses saat melakukan iterasi, dan jangan menyimpan referensi ke objek yang dapat diubah berulang kali.

3. Apakah jumlah halaman sama berarti isinya lengkap?

Tidak bisa disimpulkan seperti itu. Jumlah halaman yang sama tidak secara otomatis membuktikan bahwa konten tersebut lengkap, tetapi halaman atau nomor halaman yang hilang merupakan tanda bahwa Anda perlu waspada, dan pemeriksaan integritas harus dilakukan sebelum pemolesan bahasa.

4. Apa yang harus Anda lakukan jika halaman gagal diproses?

Cantumkan halaman yang hilang dan alasan kegagalan dalam daftar pengiriman, dan simpan nomor sumber untuk nomor halaman tersebut, sehingga pengguna dapat memutuskan untuk mengirim ulang, memprosesnya secara terpisah, atau menerima pengiriman sebagian.

📝 Ringkasan

Kunci TIFF multi-frame adalah mengkonfirmasi nomor halaman terlebih dahulu, kemudian memprosesnya halaman demi halaman dan mencatat hasilnya. Setiap halaman harus mempunyai status yang jelas, dan halaman yang hilang harus ditulis.

Coba sekarang: Unggah dokumen untuk memulai penerjemahan, dengan tetap mempertahankan tata letak aslinya

Referensi: Pillow ImageSequence.

Diperbarui 2026-11-13