ข้ามไปยังเนื้อหาหลัก

ภาพรวม

Image Resizer เป็นแอปพลิเคชันบรรทัดคำสั่งที่สร้างด้วย .NET ซึ่งออกแบบมาเพื่อปรับขนาดรูปภาพ โดยช่วยให้คุณปรับขนาดรูปภาพที่ระบุได้ด้วยการกำหนดขนาดเป้าหมายเป็นไบต์และโฟลเดอร์เอาต์พุต

เครื่องมือนี้มีเป้าหมายเพื่อคงความใกล้เคียงกับรูปภาพต้นฉบับ ความแตกต่างใดๆ ควรอยู่ภายในขอบเขตที่สายตามนุษย์ยอมรับได้

เอาต์พุตของเครื่องมือนี้มุ่งเป้าไปที่ค่าคะแนนความคล้ายคลึงทางภาพ 90% ขึ้นไปในการทดสอบเปรียบเทียบโดยใช้อัลกอริทึม cross correlation

การผสานการทำงาน Import / Export

ไฟล์ที่รองรับสามารถประมวลผลได้โดยใช้ฟังก์ชัน export ของ Glasswall Engine ฟังก์ชันนี้จะส่งออกไฟล์ ZIP ที่มีรูปภาพทั้งหมดที่แยกออกมาจากเอกสารต้นฉบับ

ฟีเจอร์นี้ช่วยให้สามารถประมวลผลรูปภาพแบบกำหนดเองได้ และจากนั้นสามารถแทรกกลับเข้าไปในเอกสารต้นฉบับได้โดยใช้ฟังก์ชัน import

อย่างไรก็ตาม มีข้อจำกัดบางประการของการผสานการทำงานที่ควรทราบ:

  • การเปลี่ยนชื่อไฟล์ของรูปภาพให้แตกต่างจากชื่อเดิมจะทำให้ไม่สามารถนำรูปภาพกลับไปวางในเอกสารได้ในระหว่างกระบวนการ import
  • ชื่อไฟล์แยกความแตกต่างระหว่างตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
  • หากขนาดไฟล์ของรูปภาพใหญ่กว่าขนาดเดิม การ import อาจไม่สำเร็จ

เครื่องมือนี้ช่วยให้ผู้ใช้ปรับขนาดรูปภาพให้มีขนาดเป้าหมายที่น้อยกว่าหรือเท่ากับขนาดไฟล์ต้นฉบับ เพื่อให้มั่นใจว่ากระบวนการ import จะราบรื่น

การใช้งาน:

gw_image_resizer [options]

ตัวเลือก:

  -i, --in <filename> (REQUIRED)                               Input file name
-o, --out <filename> (REQUIRED) Output file name
-t, --target <max size in bytes> (REQUIRED) Target maximum output file size
-l, --memory-limit <max memory limit percentage> (OPTIONAL) An optional number that specifies the maximum amount of system memory percent the image resize is limited to [default: 50]
-T, --temp-dir <path> (OPTIONAL) Defines the path to an existing directory where temporary files are created during processing [default: $TMPDIR/.gw-image-resizer]
-?, -h, --help Show help and usage information
--version Show version information

รหัสการออก

รหัสการออกคำอธิบาย
0ปรับขนาดสำเร็จแล้ว หรือไฟล์มีขนาดตามเป้าหมายอยู่แล้ว
1ขนาดเป้าหมายของไฟล์อินพุตน้อยกว่าศูนย์
2ไม่พบไฟล์อินพุต
3ไม่สามารถโหลดไฟล์อินพุตได้ เนื่องจากไฟล์เสียหายหรือไม่รองรับ
4ไม่สามารถโหลดไฟล์อินพุตได้ด้วยสาเหตุที่ไม่ทราบแน่ชัด
5บางส่วนของพาธเอาต์พุตไม่มีอยู่
6ไม่สามารถเขียนไฟล์เอาต์พุตได้ด้วยสาเหตุที่ไม่ทราบแน่ชัด
7เกิดข้อผิดพลาดทั่วไปในไลบรารี magick ขณะพยายามปรับขนาด
8ไม่สามารถทำให้ได้ขนาดเป้าหมายตามต้องการ
9ข้อผิดพลาดที่ไม่คาดคิด
10ตัวเลือกการจำกัดหน่วยความจำไม่ได้อยู่ระหว่าง 1-100
11ไม่พบพาธไดเรกทอรีชั่วคราว
12ไม่สามารถเขียนไปยังไดเรกทอรีชั่วคราวได้

ไดเรกทอรีชั่วคราว

เพื่อให้มั่นใจว่าการปรับขนาดไฟล์จะสำเร็จ ระหว่างการประมวลผล เครื่องมือ image resizer อาจใช้ไดเรกทอรีชั่วคราวที่อยู่ที่ "$TMPDIR/.gw-image-resizer" หรือ "/tmp/.gw.image-resizer" โดยสามารถแทนที่เป็นไดเรกทอรีที่มีอยู่และเขียนได้ด้วยตัวเลือกบรรทัดคำสั่งเพิ่มเติม "--temp-dir" (หรือ "-T" แบบย่อ)

หมายเหตุ: หากไดเรกทอรีชั่วคราวไม่สามารถเขียนได้ (เช่น ผู้ใช้ปัจจุบันไม่มีสิทธิ์เพียงพอ) แอปพลิเคชันจะล้มเหลวเมื่อจำเป็นต้องแคชข้อมูลการประมวลผลภาพ ขอแนะนำให้ทดสอบว่าผู้ใช้สามารถเขียนลงในไดเรกทอรีได้ เพื่อหลีกเลี่ยงปัญหาที่เกิดขึ้นเป็นครั้งคราวระหว่างการทำงาน

การจำกัดหน่วยความจำ

โดยค่าเริ่มต้น การจัดสรรหน่วยความจำที่ใช้สำหรับการปรับขนาดรูปภาพจะถูกจำกัดไว้ที่ 50% ของหน่วยความจำระบบ โดยสามารถแทนที่เป็นค่าระหว่าง 1-100 ได้ด้วยตัวเลือกบรรทัดคำสั่งเพิ่มเติม "-l"

การรองรับ

ขณะนี้เครื่องมือรองรับสิ่งต่อไปนี้:

  • JPEG
  • PNG
  • BMP
  • TIFF (ดูปัญหาที่ทราบของ GeoTiff)
  • GIF

ไฟล์อื่น ๆ ที่ ImageMagick รองรับอาจโหลดได้อย่างถูกต้อง แต่ยังไม่ได้มีการนำไปใช้งานอย่างชัดเจน

กลยุทธ์การปรับขนาด

ไฟล์ภาพที่รองรับทั้งหมดจะผ่านชุดวิธีการเพื่อให้ได้ขนาดเป้าหมาย ตัวอย่างเช่น:

คุณภาพการบีบอัด:

ไฟล์ JPEG / JPG ถูกตั้งค่าคุณภาพไว้ที่ 25

ไฟล์ PNG ถูกตั้งค่าไว้ที่ 100

ไฟล์ประเภทอื่นจะคงเดิม อย่างไรก็ตาม วิธีการบีบอัดจะถูกตั้งค่าเป็น LZW เสมอ

การเพิ่มประสิทธิภาพ GIF

เนื่องจาก GIF สามารถประกอบด้วยหลายภาพและหลายเลเยอร์ จึงมีการเพิ่มประสิทธิภาพที่เป็นไปได้เพื่อช่วยลดขนาดไฟล์

หากเลเยอร์ต่าง ๆ ของภาพมีขนาดแตกต่างกัน Image Magick จะทำการเพิ่มประสิทธิภาพเพื่อลดขนาดไฟล์

มิฉะนั้น GIF จะถูก Coalesced ซึ่งเป็นการรวมส่วนที่คล้ายกันของภาพในลำดับเพื่อลดขนาด

ความโปร่งใสจะถูกเพิ่มประสิทธิภาพในขั้นตอนนี้ด้วย โดยแทนที่ข้อมูลพิกเซลที่ซ้ำกันตลอดทั้งลำดับด้วยความโปร่งใส

Quantize

จากนั้นภาพทั้งหมดจะถูก Quantized ซึ่งจะจำกัดจำนวนสีไว้ที่ 128 สี โดยจะไม่เปลี่ยนค่า หากเดิมมีจำนวนน้อยกว่านี้อยู่แล้ว

การลดขนาด

หากยังไม่ถึงเป้าหมาย ภาพจะถูกปรับขนาดต่อไปจนกว่าจะถึง โดยความละเอียดจะถูกลดลงเหลือ 95% ของต้นฉบับอย่างต่อเนื่องจนกว่าจะถึงเป้าหมาย หรือจนไม่สามารถลดความละเอียดลงได้อีก

ปัญหาที่ทราบ

การประมวลผลอาจลบข้อมูลตำแหน่งออกจากพิกเซลใน GeoTIFF นอกจากนี้ TIFF ทั่วไปอาจมีสีสลับกันในภาพระดับสีเทา

ไลบรารีของบุคคลที่สาม

ชื่อไลบรารีเวอร์ชันไลบรารีประเภทประเภทใบอนุญาตURL ใบอนุญาตURL โปรเจกต์URL ต้นทาง
System.CommandLine2.0.0-beta4.22272.1ไลบรารีMITลิงก์ลิงก์ลิงก์
System.CommandLine.Hosting0.4.0-alpha.22272.1ไลบรารีMITลิงก์ลิงก์ลิงก์
Magick.NET-Q8-AnyCPU13.10.0ไลบรารีApache-2.0ลิงก์ลิงก์ลิงก์

เครื่องมือ Image Resizer ของ Glasswall ใช้แพ็กเกจ NuGet "Magick.NET-Q8-AnyCPU" ซึ่งเป็น wrapper ของ dotnet สำหรับ ImageMagick

ตัว ImageMagick เองเป็นเครื่องมือโอเพนซอร์สฟรีที่ใช้สำหรับแก้ไขและจัดการภาพดิจิทัล