Làm cách nào để chuyển đổi hình ảnh PNG sang SVG?
Làm cách nào để chuyển đổi hình ảnh PNG sang SVG?
Câu trả lời:
Có một trang web nơi bạn có thể tải lên hình ảnh của mình và xem kết quả.
Nhưng nếu bạn muốn tải xuống hình ảnh của bạn, bạn cần phải đăng ký. (Nếu bạn đăng ký, bạn nhận được 2 hình ảnh miễn phí)
potrace
không không hỗ trợ PNG dưới dạng tập tin đầu vào, nhưng PNM .
Do đó, đầu tiên convert
từ PNG đến PNM:
convert file.png file.pnm # PNG to PNM
potrace file.pnm -s -o file.svg # PNM to SVG
potrace -s
=> Tệp đầu ra là S VGpotrace -o file.svg
=> Ghi đầu ra vào file.svg
convert 2017.png 2017.pnm
Tệp tạm thời = 2017.pnm
potrace 2017.pnm -s -o 2017.svg
ykarikos đề xuất một tập lệnh png2svg.sh mà tôi đã cải thiện:
#!/bin/bash
File_png="${1?:Usage: $0 file.png}"
if [[ ! -s "$File_png" ]]; then
echo >&2 "The first argument ($File_png)"
echo >&2 "must be a file having a size greater than zero"
( set -x ; ls -s "$File_png" )
exit 1
fi
File="${File_png%.*}"
convert "$File_png" "$File.pnm" # PNG to PNM
potrace "$File.pnm" -s -o "$File.svg" # PNM to SVG
rm "$File.pnm" # Remove PNM
Nếu bạn muốn chuyển đổi nhiều tệp, bạn cũng có thể sử dụng lệnh một dòng sau:
( set -x ; for f_png in *.png ; do f="${f_png%.png}" ; convert "$f_png" "$f.pnm" && potrace "$f.pnm" -s -o "$f.svg" ; done )
Xem thêm so sánh tốt này của raster với bộ chuyển đổi vector trên Wikipedia.
potrace
cho các biểu tượng đen trắng. Cảm ơn phản hồi của bạn. Nhưng xin lỗi, không biết làm thế nào để giữ gìn màu sắc ... Ho! Tôi có một ý tưởng: Nếu hình ảnh gốc của bạn có ít màu (giả sử ba màu độc đáo), bạn có thể tạo ba hình ảnh ban đầu (một cho mỗi màu). Sau đó chuyển đổi sang SVG. Và cuối cùng, hợp nhất ba nội dung SVG trong một tệp (SVG dựa trên XML). Hy vọng điều này có thể giúp ... Chúc mừng ;-)
convert
và potrace
có sẵn trên nhiều nền tảng. Tôi đang sử dụng máy tính dựa trên Linux. Tôi vừa mới sử dụng các lệnh này ngày hôm qua để tạo ra một SVG từ một tờ giấy được quét. Bạn có thể xem kết quả: cpp-frug.github.io/images/Cpp-President-2017.svg Vui lòng giải thích thêm về mục tiêu của bạn. Bạn muốn / tự hỏi điều gì? Nhu cầu / mong muốn của bạn là gì? Chúc mừng ;-)
Png là kiểu ảnh bitmap và SVG là thiết kế đồ họa dựa trên vectơ hỗ trợ bitmap, do đó, nó sẽ không chuyển đổi hình ảnh thành vectơ, chỉ là hình ảnh được nhúng trong định dạng dựa trên vectơ. Bạn có thể làm điều này bằng cách sử dụng http://www.inkscape.org/ miễn phí. Nó sẽ nhúng nó, tuy nhiên nó cũng có Live Trace like engine sẽ cố gắng chuyển đổi nó thành đường dẫn nếu bạn muốn (sử dụng potrace). Xem dấu vết trực tiếp trong adobe Illustrator (commericial) là một ví dụ:
http://graphicssoft.about.com/od/illustrator/ss/sflivetrace.htmlm
Bạn có thể muốn nhìn vào potrace .
Dễ dàng
Như bạn sẽ thấy, nếu bạn muốn thực hiện rất nhiều công cụ .svg thông minh khác, bạn cũng có thể thực hiện bằng Inkscape.
Một quan sát phi kỹ thuật: Cá nhân tôi thích phương pháp này hơn các dịch vụ trang web "miễn phí" bởi vì, ngoài việc thường xuyên yêu cầu đăng ký, bằng cách tải lên hình ảnh, trong tất cả các điều khoản thực tế, người ta sẽ đưa hình ảnh cho chủ sở hữu trang web.
với họa sĩ minh họa adobe:
Mở Adobe Illustrator. Nhấp vào "Tệp" và chọn "Mở" để tải tệp .PNG vào chương trình. Chỉnh sửa hình ảnh khi cần trước khi lưu dưới dạng tệp .SVG. Nhấp vào "Tệp" và chọn "Lưu dưới dạng." Tạo một tên tệp mới hoặc sử dụng tên hiện có. Đảm bảo loại tệp đã chọn là SVG. Chọn một thư mục và nhấp vào "Lưu" để lưu tệp.
hoặc là
công cụ chuyển đổi trực tuyến http://image.online-convert.com/convert-to-svg
tôi thích AI vì bạn có thể thực hiện bất kỳ thay đổi nào cần thiết
chúc may mắn
Thật ngạc nhiên, potrace hóa ra, chỉ có thể xử lý đen trắng. Điều đó có thể tốt cho bạn sử dụng trường hợp, nhưng một số có thể coi việc thiếu dấu vết màu là có vấn đề.
Cá nhân tôi đã có kết quả khả quan với Vector Magic
Tuy nhiên, nó không hoàn hảo.
Một lưu ý cho những người sử dụng potrace và ImageMagick , chuyển đổi PNG hình ảnh với tính minh bạch để PPM dường như không làm việc rất tốt. Dưới đây là một ví dụ sử dụng -flatten
cờ trên convert
để xử lý việc này:
sudo apt-get install potrace imagemagick
convert -flatten input.png output.ppm
potrace -s output.ppm -o output.svg
rm output.ppm
Một hiện tượng thú vị khác là bạn có thể sử dụng PPM (256 * 3 màu, ví dụ: RGB), PGM (256 màu, tức là màu xám) hoặc PBM (chỉ có 2 màu, chỉ có màu trắng hoặc đen) làm định dạng đầu vào. Từ những quan sát hạn chế của tôi, có vẻ như trên các hình ảnh được khử răng cưa, PPM và PGM (tạo ra các SVG giống hệt như tôi có thể nhìn thấy) thu nhỏ vùng màu và PBM mở rộng vùng màu (chỉ một chút). Có lẽ đây là sự khác biệt giữa một pixel > (256 / 2)
bài kiểm tra và một pixel > 0
bài kiểm tra. Bạn có thể chuyển đổi giữa ba bằng cách thay đổi phần mở rộng tập tin, tức là. PBM sử dụng sau đây :
sudo apt-get install potrace imagemagick
convert -flatten input.png output.pbm
potrace -s output.pbm -o output.svg
rm output.pbm
Bạn cũng có thể thử http://image.online-convert.com/convert-to-svg
Tôi luôn sử dụng nó cho nhu cầu của tôi.
Tôi chỉ tìm thấy câu hỏi và câu trả lời này khi tôi đang cố gắng làm điều tương tự! Tôi không muốn sử dụng một số công cụ khác được đề cập. (Đừng muốn gửi email của tôi đi và không muốn trả tiền). Tôi thấy rằng Inkscape (v0.91) có thể làm một công việc khá tốt. Đây hướng dẫn là nhanh chóng và dễ hiểu.
Nó đơn giản như việc chọn bitmap của bạn trong Inkskape và Shift + Alt + B.
Tùy thuộc vào lý do tại sao bạn muốn chuyển đổi từ .png sang .svg, bạn có thể không phải trải qua rắc rối. Chuyển đổi từ .png (raster) sang .svg (vector) có thể là một nỗi đau nếu bạn không quen thuộc với các công cụ có sẵn hoặc nếu bạn không phải là một nhà thiết kế đồ họa bằng thương mại.
Nếu ai đó gửi cho bạn một tệp lớn, độ phân giải cao (ví dụ 1024x1024), bạn có thể thay đổi kích thước đó xuống gần như bất kỳ kích thước nào bạn muốn trong GIMP. Thông thường, bạn sẽ gặp vấn đề khi thay đổi kích thước hình ảnh nếu độ phân giải (số pixel trên mỗi inch) quá thấp. Để khắc phục điều này trong GIMP, bạn có thể:
File -> Open
: tập tin .png của bạnImage -> Image Properties
: kiểm tra Độ phân giải và không gian màu. Bạn muốn độ phân giải khoảng 300 ppi. Trong hầu hết các trường hợp, bạn muốn không gian màu là RGB.Image -> Mode
: đặt thành RGBImage -> Scale Image
: để kích thước một mình, đặt và độ phân giải Y thành 300 hoặc lớn hơn. Lượt quy mô.Image -> Scale Image
: độ phân giải bây giờ phải là 300 và bây giờ bạn có thể thay đổi kích thước hình ảnh xuống gần như bất kỳ kích thước nào bạn muốn.Không dễ như thay đổi kích thước tệp .svg, nhưng chắc chắn dễ dàng và nhanh hơn so với cố gắng chuyển đổi .png thành .svg, nếu bạn đã có một hình ảnh lớn, độ phân giải cao.
Tôi giả sử rằng bạn muốn viết phần mềm để làm điều này. Để làm điều đó một cách ngây thơ, bạn chỉ cần tìm các dòng và đặt các vectơ. Để làm điều đó một cách thông minh, bạn cố gắng khớp hình dạng vào bản vẽ (mô hình phù hợp). Ngoài ra, bạn nên cố gắng xác định các khu vực bitmap (các khu vực bạn không thể mô hình hóa thông qua sự xấu hổ hoặc áp dụng kết cấu. Tôi không khuyên bạn nên đi theo tuyến đường này vì sẽ mất khá nhiều thời gian và cần một chút kiến thức về đồ họa và thị giác máy tính. Tuy nhiên, đầu ra sẽ nhiều và quy mô tốt hơn nhiều so với đầu ra ban đầu của bạn.
http://online-converting.com/image/convert-to-svg/ hoạt động tốt để chuyển đổi sang svg
potrace
trên dòng lệnh - khiến tôi tự hỏi trang web sử dụng nội bộ gì ...
Công cụ này đang làm việc rất tốt ngay bây giờ.
Nếu bạn đang sử dụng một số hệ thống Linux, hình ảnh là hoàn hảo. I E
convert somefile.png somefile.svg
Điều này hoạt động với hàng đống các định dạng khác nhau.
Đối với các phương tiện khác như video và sử dụng âm thanh (ffmpeg), tôi biết bạn đã nêu rõ png cho svg, tuy nhiên; Nó vẫn liên quan đến truyền thông.
ffmpeg -i somefile.mp3 somefile.ogg
Chỉ là một mẹo cho nếu bạn muốn đi qua nhiều tệp; một vòng lặp sử dụng thủ thuật shell cơ bản ..
for f in *.jpg; do convert $f ${f%jpg}png; done
Điều đó loại bỏ jpg và thêm png cho biết chuyển đổi những gì bạn muốn.