> [Site index](https://perfectvector.com/llms.txt) — available pages and descriptions.

# Potrace PNG เป็น SVG: จัดการอัลฟาและเก็บช่องว่าง

> แปลง PNG ด้วย Potrace หลังจากเตรียมช่องอัลฟ่า ปฏิบัติตามขั้นตอนการทำงานของ PGM ที่ทดสอบแล้ว เปรียบเทียบเกณฑ์ และตรวจสอบพื้นหลังของ SVG และรูด้านใน

Source: https://perfectvector.com/th/blog/potrace-png-to-svg

Language: th
Author: Irene Kim
Published: 2026-11-02T08:00:00+09:00

หากต้องการแปลง PNG เป็น SVG ด้วย Potrace ให้เตรียมบิตแมประดับสีเทาก่อน จากนั้นจึงติดตามด้วย `potrace --svg` สำหรับงานศิลปะสีเข้มบนพิกเซลโปร่งใส ให้รวมภาพลงบนแผ่นสีขาวก่อนที่จะบันทึกบิตแมป ตรวจสอบรูปทรงธรณีประตูและช่องเปิดด้านในก่อนยอมรับ SVG

Standard Potrace 1.16 อ่าน PBM, PGM, PPM และ BMP แทน PNG โดยตรง [คู่มืออย่างเป็นทางการ](https://potrace.sourceforge.net/potrace.1.html)ของมันอธิบายการดำเนินการติดตามขาวดำ: เฉดสีกลางจะกลายเป็นสีดำหรือสีขาว ขั้นตอนการทำงานด้านล่างจะสร้างรูปทรงเรขาคณิตทึบโดยมีพื้นที่ว่าง แทนที่จะรักษาค่าอัลฟ่าต่อเนื่องของ PNG

หากคุณต้องการเวิร์กโฟลว์ของเบราว์เซอร์สำหรับรูปภาพที่คุณมีอยู่แล้ว PerfectVector นำเสนอการแปลงรูปภาพเป็นเส้นทางและดูตัวอย่างฟรี [เริ่มต้นอย่างอิสระด้วยภาพของคุณเอง](https://perfectvector.com/th/image-to-vector) จากนั้นเปรียบเทียบภาพเงา ช่องเปิดเล็กๆ และสีกับแหล่งที่มา ปลดล็อกผลลัพธ์ก่อนที่จะแก้ไขหรือส่งออก สูตร Potrace ในเครื่องยังคงมีประโยชน์เมื่อคุณต้องการการตั้งค่าคำสั่งที่ประมวลผลล่วงหน้าอย่างชัดเจนและทำซ้ำได้

## สิ่งที่คุณต้องการก่อนการติดตาม

ใช้ไฟล์ปฏิบัติการ Potrace ที่ติดตั้งไว้, Python 3 พร้อม Pillow และ PNG ดั้งเดิม สูตรนี้ใช้กับ **Potrace 1.16 และ Pillow 11.3.0** เก็บสำเนาอินพุตและทำงานในโฟลเดอร์แยกต่างหาก เพื่อให้ตัวแปรเกณฑ์แต่ละรายการมีชื่อไฟล์ที่แตกต่างกัน

กรณีเริ่มต้นคือโลโก้ ไอคอน หรือภาพวาดสีเข้มบนพื้นหลังสีอ่อนหรือโปร่งใส หากตัวแบบของคุณสว่างในที่มืด ให้ตัดสินใจว่าจะกลับด้านหรือเตรียมภาพอย่างไรก่อนที่จะใช้สูตรนี้ สำหรับเวิร์กโฟลว์ตัวแก้ไขเชิงโต้ตอบ โปรดดูที่ [บิตแมป Inkscape Trace](https://perfectvector.com/th/blog/inkscape-trace-bitmap)

**ด้าน**เป็นพื้นหลังทึบที่ใช้ในการแก้ไขพิกเซลโปร่งใสก่อนการติดตาม **เกณฑ์** คือค่าตัดความสว่างที่แบ่งภาพที่เตรียมไว้ออกเป็นพื้นหน้าและพื้นหลัง ตัวเลือกเหล่านั้นเกิดขึ้นก่อนที่รูปร่างจะกลายเป็นเรขาคณิต SVG

## 1. แก้ไขความโปร่งใสก่อนบันทึกบิตแมป

PNG เก็บสีและความทึบแยกกัน ช่องอัลฟ่าอธิบายความทึบของแต่ละพิกเซล [ข้อกำหนด PNG](https://www.w3.org/TR/png-3/) อธิบายการนำเสนอนี้ พิกเซลที่โปร่งใสอย่างสมบูรณ์ยังสามารถนำค่า RGB ได้ การปล่อยช่องอัลฟ่าไม่ได้รวมพิกเซลเหล่านั้นไว้บนพื้นหลังสีขาวที่คุณอาจเห็นในโปรแกรมดูรูปภาพ

สำหรับรอยดำ ให้วางภาพไว้บนสีขาวโดยเจตนา ตัวอย่าง Python นี้เปิด `artwork.png` แล้วรวมเข้ากับรูปภาพสีขาวที่มีขนาดเท่ากัน แปลงผลลัพธ์นั้นเป็นระดับสีเทา และบันทึก `artwork.pgm`:

```python
from PIL import Image

src = Image.open("artwork.png").convert("RGBA")
matte = Image.new("RGBA", src.size, "white")
gray = Image.alpha_composite(matte, src).convert("L")
gray.save("artwork.pgm")
```

เอกสาร [`alpha_composite`](https://pillow.readthedocs.io/en/stable/reference/Image.html#PIL.Image.alpha_composite) ของ Pillow กำหนดรูปภาพที่ 2 ว่ามีการรวมคอมโพสิตไว้เหนือรูปภาพแรก รูปภาพทั้งสองที่นี่มีขนาดที่ตรงกันและโหมด RGBA

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

**ภาพประกอบ**

![ภาพประกอบของวงแหวนสีดำบนความโปร่งใส PNG ประกอบกันบนพื้นที่ด้านสีขาว จากนั้นแสดงเป็นเรขาคณิต SVG โดยมีจุดศูนย์กลางเปิด](https://perfectvector.com/blog/potrace-png-to-svg/alpha-pipeline.webp)

*แก้ไขพิกเซลโปร่งใสของแรสเตอร์กับด้านที่จงใจก่อนที่จะเลือกเรขาคณิตพื้นหน้า การเปิดครั้งสุดท้ายทำให้พื้นหลังของจอแสดงผลแสดงผ่านได้*

## 2. ติดตาม PGM ที่เตรียมไว้

เรียกใช้สิ่งนี้ในโฟลเดอร์ที่มี `artwork.pgm`:

```bash
potrace artwork.pgm --svg --blacklevel 0.5 --turdsize 2 --output artwork.svg
```

`--blacklevel 0.5` เลือกจุดตัดระดับสีเทา `--turdsize 2` เก็บค่าการปราบปรามจุดเล็กเริ่มต้นของ Potrace ไว้อย่างชัดเจน ใช้ชื่อเอาต์พุตใหม่เมื่อคุณเปลี่ยนการตั้งค่า จากนั้นเปรียบเทียบไฟล์แทนที่จะเขียนทับข้อมูลอ้างอิงของคุณซ้ำๆ

เปลี่ยนการควบคุมทีละรายการ:

| ควบคุม         | สิ่งที่จะทบทวน                                                      |
| -------------- | ------------------------------------------------------------------- |
| `--blacklevel` | ไม่ว่ารอยจางๆ จะกลายเป็นเบื้องหน้าและช่องแคบๆ ยังคงว่างเปล่าหรือไม่ |
| `--turdsize`   | ไม่ว่ารูปทรงแยกเล็กๆ น้อยๆ จะเป็นเสียงรบกวนหรือรายละเอียดโดยเจตนา   |
| `--alphamax`   | การรักษามุม; แม้จะมีชื่อ แต่นี่ไม่ใช่การควบคุมความทึบ               |

เกณฑ์ระดับสีดำที่สูงขึ้นสามารถรวมพิกเซลสีเทาอ่อนในเบื้องหน้าได้มากขึ้น ที่สามารถเสริมเส้นจาง ๆ หรือปิดช่องแสงได้ ตัดสินบิตแมปที่เตรียมไว้และรูปร่างผลลัพธ์ร่วมกัน การปรับให้เรียบไม่สามารถสร้างตัวนับขึ้นใหม่ได้หลังจากที่ถึงขีดจำกัดแล้ว

## สิ่งที่ภาพทดสอบต้นฉบับทั้งสองแสดงให้เห็น

เราสร้าง PNGs ที่มีการควบคุม 256 × 256 PNGs สองตัว และรันคำสั่งการประมวลผลล่วงหน้าและ Potrace ด้านบน อันหนึ่งคือวงแหวนสีดำที่มีพิกเซลโปร่งใสทั้งด้านนอกและด้านใน อีกอันเป็นรอยดำทึบแสงมีตัวนับสีเทาแคบๆ โดยมีช่องเปิดอยู่ภายในเครื่องหมาย เราตรวจสอบ SVG ที่สร้างขึ้นด้วยตัวเรนเดอร์ และตรวจสอบจุดศูนย์กลางและความโปร่งใสภายนอก

| การป้อนข้อมูลและการเตรียมการ                        | สังเกตผลลัพธ์ SVG                                                         |
| --------------------------------------------------- | ------------------------------------------------------------------------- |
| วงแหวนโปร่งใส อัลฟ่าถูกทิ้งก่อนการแปลงระดับสีเทา    | ผืนผ้าใบสีดำที่เต็มไปด้วย การเปิดด้านนอกและที่ตั้งใจไว้กลายเป็นเบื้องหน้า |
| วงแหวนเดียวกัน ประกอบเป็นสีขาวก่อนการแปลงระดับสีเทา | ภายนอกและตรงกลางว่างเปล่า แหวนยังคงเต็มอยู่                               |
| ตัวนับสีเทาแคบ สีขาวคอมโพสิต ระดับสีดำ 0.5          | เคาน์เตอร์ยังคงเปิดอยู่                                                   |
| ภาพเคาน์เตอร์ที่เตรียมไว้เหมือนกัน ระดับสีดำ 0.8    | เคาน์เตอร์กรอกเรียบร้อยแล้ว                                               |

พิกเซลที่มองไม่เห็นของตัวควบคุมวงแหวนมีค่า RGB สีดำ การเพิกเฉยต่ออัลฟ่าทำให้ค่าเหล่านั้นถึงเกณฑ์ รุ่นคอมโพสิตสีขาวแก้ไขให้เป็นสีขาวก่อน สิ่งนี้อธิบายว่ากล่องดำของกลุ่มตัวอย่างนั้น ไม่ใช่การอ้างว่า PNG ทุกอันจะล้มเหลวในลักษณะเดียวกัน

การทดสอบตัวนับทำให้อินพุตและการตั้งค่าอื่นๆ คงที่ มีเพียงเกณฑ์ที่เปลี่ยนแปลงเท่านั้น ผลลัพธ์ที่ได้แสดงให้เห็นว่าเหตุใดรอยที่มีสีเข้มกว่าจึงไม่เป็นรอยที่ดีกว่าโดยอัตโนมัติ ตรวจสอบคุณสมบัติที่คุณต้องการแทนที่จะเลือกการตั้งค่าที่มีโครงร่างที่หนักที่สุด

นี่เป็นการตรวจสอบแบบดิจิทัลของฟิกซ์เจอร์ดั้งเดิมสองชิ้น โดยไม่มีภาพแรสเตอร์ฝังอยู่ในเอาท์พุต SVG เราไม่ได้เปรียบเทียบคุณภาพของ Potrace กับ PerfectVector นำเข้าไฟล์ไปยังเครื่องตัด หรือทดสอบผลลัพธ์ทางกายภาพ

## 3. ตรวจสอบรูและพื้นหลังใน SVG ที่บันทึกไว้

วาง SVG ไว้บนพื้นหลังที่ตัดกัน พื้นหลังนั้นควรแสดงผ่านทั้งพื้นที่ด้านนอกและทุกช่องที่ตั้งใจไว้ สีขาวอาจดูเหมือนรูบนหน้ากระดาษสีขาว ดังนั้นภาพขนาดย่อเพียงอย่างเดียวจึงไม่เพียงพอ

[เส้นทางผสม](https://www.w3.org/TR/SVG2/paths.html) SVG สามารถอธิบายรูปร่างภายนอกและช่องเปิดด้านในภายในวัตถุเดียว หากไม่มีช่องเปิดจากรูปทรงที่ลากแล้ว ให้กลับไปที่ PGM และเกณฑ์ หากมีอยู่ในตัวแสดงภาพเดียว แต่กรอกข้อมูลหลังจากการนำเข้า ให้ตรวจสอบการตีความเส้นทางของแอปที่รับแทน [คู่มือการแก้ปัญหาช่องโหว่ SVG](https://perfectvector.com/th/blog/svg-holes-fill-in) จะแยกกรณีเหล่านั้นออกจากกัน

ตรวจสอบไฟล์ที่บันทึกไว้สำหรับ:

* ภาพเงาที่ตั้งใจไว้และช่องว่างเล็ก ๆ
* พื้นที่ว่างจริงด้านนอกเครื่องหมายและภายในเคาน์เตอร์
* จุดเร่ร่อนที่ไม่ควรกลายเป็นวัตถุ
* ขนาดเอกสารที่เหมาะสมในขั้นตอนการทำงานปลายทาง
* เส้นทางแทนที่จะเป็นสำเนา PNG ที่ฝังอยู่

หากพื้นหลังดูผิด ให้ใช้[การวิเคราะห์พื้นหลัง SVG แบบโปร่งใส](https://perfectvector.com/th/blog/transparent-background-svg) ก่อนที่จะลบวัตถุสีขาวทุกอัน หากไม่มีส่วนสำคัญเล็กๆ น้อยๆ จากแหล่งที่มาจริงๆ ให้ใช้ต้นฉบับที่ใหญ่กว่าหรือวาดรายละเอียดนั้นใหม่ [คำแนะนำด้านคุณภาพแหล่งที่มา](https://perfectvector.com/th/blog/png-to-svg-without-losing-quality) อธิบายขอบเขตดังกล่าว

## เมื่อเวิร์กโฟลว์ขาวดำนี้ลงตัว

Potrace เหมาะกับเครื่องหมายที่สามารถแสดงเป็นภาพเงาที่เต็มไปด้วยและช่องเปิดโดยเจตนา เก็บแรสเตอร์ไว้เมื่อการแรเงาแบบนุ่มนวลหรือความทึบบางส่วนเป็นส่วนหนึ่งของอาร์ตเวิร์คที่คุณต้องการเก็บรักษา สำหรับสีที่สื่อความหมายหลายๆ สี ให้ใช้เวิร์กโฟลว์เวกเตอร์ที่ใช้สีได้ หรือเตรียมบัตรผ่านแยกกันโดยเจตนา คำสั่งขาวดำคำสั่งเดียวนี้ไม่ได้สร้างชุดสี

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

## คำถามที่พบบ่อย

**Potrace สามารถเปิด PNG โดยตรงได้หรือไม่**
Standard Potrace 1.16 ยอมรับอินพุต PBM, PGM, PPM และ BMP ถอดรหัส PNG ด้วยเครื่องมือรูปภาพอื่นก่อน ทำให้การรักษาความโปร่งใสชัดเจน และบันทึกบิตแมปที่รองรับก่อนการติดตาม

**Potrace รักษาความโปร่งใสของ PNG หรือไม่**
ขั้นตอนการทำงานขาวดำจะสร้างรูปทรงเรขาคณิตและพื้นที่ว่าง ไม่รักษาค่าอัลฟ่าต่อเนื่องของ PNG รวมพิกเซลโปร่งใสไว้บนผิวด้านที่ต้องการก่อนกำหนดขอบ จากนั้นตรวจสอบพื้นที่ว่างของ SVG บนพื้นหลังที่ตัดกัน

**alphamax เป็นการตั้งค่า PNG alpha หรือไม่**
ไม่ อัลฟ่าแม็กซ์ของ Potrace ควบคุมการรักษามุมในเส้นโค้งที่ลากตามเส้น ไม่ได้กำหนดวิธีการรวมช่องความทึบของ PNG ก่อนการติดตาม

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

## แหล่งที่มา

1. [Potrace — Manual](https://potrace.sourceforge.net/potrace.1.html) — รูปแบบอินพุตที่รองรับ, การกำหนดขีดจำกัดขาวดำ, เอาต์พุต SVG และตัวเลือกคำสั่งที่มีชื่อ
2. [Pillow — โมดูลรูปภาพ](https://pillow.readthedocs.io/en/stable/reference/Image.html#PIL.Image.alpha_composite) — การจัดองค์ประกอบภาพ RGBA และลำดับที่ใช้ในการเตรียมตัวอย่าง
3. [W3C — ข้อกำหนด PNG](https://www.w3.org/TR/png-3/) — ตัวอย่างสีและการแสดงอัลฟ่าในภาพ PNG
4. [W3C — เส้นทาง SVG](https://www.w3.org/TR/SVG2/paths.html) — เส้นทางแบบผสมและรูปทรงภายในที่สามารถอธิบายช่องเปิดได้

***

[เริ่มต้นอย่างอิสระด้วยภาพของคุณเองใน PerfectVector](https://perfectvector.com/th/image-to-vector) จากนั้นตรวจสอบภาพเงาและช่องเปิดด้านในเทียบกับแหล่งที่มา ก่อนที่จะเลือกขั้นตอนการแก้ไขถัดไป

## Explore

- [Read the HTML article](https://perfectvector.com/th/blog/potrace-png-to-svg)
- [ลากเส้นภาพด้วย SVGcode: ตรวจรูปทรงที่ส่งออก](https://perfectvector.com/th/blog/svgcode-image-tracing.md)
- [ImageMagick PNG เป็น SVG: ตรวจตัวช่วยลากเส้น](https://perfectvector.com/th/blog/imagemagick-png-to-svg.md)
- [Product facts](https://perfectvector.com/product-facts.md)
- [FAQ](https://perfectvector.com/faq.md)
- [Pricing and credits](https://perfectvector.com/pricing.md)
