Hỏi đáp Phần mềm chuyển SVG sang ảnh chất lượng cao?

Thảo luận trong 'Hỏi đáp - Góp ý' bắt đầu bởi tungxdbt, 28/6/23.

  1. Narga

    Narga Lớp 5

    @machine không hiểu sao mình không có thông báo khi được tag, nên giờ vô tình vào thread này mới biết là được nhắc đến, trước giờ chỉ thấy thông báo like và quote :D
    Flipbook tạo các trang xem sách bằng pdf hoặc từ file ảnh, để lấy sách dạng flipbook thì các hiệu quả nhất là dùng phần mềm lọc các gói dữ liêu, mình dùng Charles proxy (có ở cả 5 nền tảng luôn: Windows, Linux, Mac, iOS, Android) đây là một công cụ cực kì mạnh (ngày xưa chơi CityVille trên FB hồi 2010 mình vẫn hack suốt :D).
    - Flipbook render trực tiếp từ pdf: dùng Charles bắt gói nào lớn nhất truyền qua trình duyệt, đổi đuôi pdf là xong.
    - Flipbook tạo các trang tĩnh HTML và ảnh: dùng Charles bắt url các tập tin ảnh, lưu ý là có 3 loại JPG, SVG, PNG trong đó JPG là ảnh minh họa, SVG là phần text phủ lên background PNG (hoặc JPG, GIF tùy theo người tạo muốn).
    - Flipbook mã hóa tên tập tin thì cần tìm tập tin cấu hình để lấy danh sách url, thường là sách loại này sẽ là ảnh hoàn chỉnh luôn, ví dụ:
    Mã:
    https://online.fliphtml5.com/paukz/zxxa/files/large/5bcb0969d5f213fd730390514e63a072.jpg
    https://online.fliphtml5.com/paukz/zxxa/files/large/3806607343e924370e175945f28c04ff.jpg
    Vậy sau khi có file ảnh, chúng ta có thể ghép chúng thành một trang sách hoàn chỉnh bằng cách:
    - Cách 1: dùng trình duyệt hiển thị tập tin svg, chụp màn hình và chèn lên background. Cách này có vẻ phức tạp nhưng thực ra lại đơn giản với dòng lệnh ở trang 1, ghép ảnh bằng imagik do chúng cùng tên nên khá dễ.
    - Cách 2: dùng imagik convert svg sang png với nền trong suốt rồi ghép 3 ảnh với nhau cùng một điểm gốc với kích thước cho trước. Convert từ SVG sang PNG trong suốt thì mình thấy phức tạp hơn cách 1, có thể là do mình không thạo imagik lắm.
    Về lệnh, để mai mình tìm lại trong đt xem sao, trước mình làm toàn bộ trên đt android cùi 4 năm tuổi trên đường đi làm :D
     
    machine, amylee and hoangducvy like this.
  2. tran ngoc anh

    tran ngoc anh Cử nhân

    Bái phục :D
     
  3. tungxdbt

    tungxdbt Mầm non

    các Bác chỉ giúp mình dòng lệnh trong ImageMagick chuyển tệp svg thành tệp png trong suốt.
    cám ơn các Bác rất nhiều
     
  4. tran ngoc anh

    tran ngoc anh Cử nhân

    Mình nghĩ không nên. IM sẽ biến svg thành png raster. Trong khi dùng Chrome để in sẽ giữ được true text.
     
    machine and tungxdbt like this.
  5. tungxdbt

    tungxdbt Mầm non

    mình đang cần tìm hiểu dòng lệnh trên Bác Ngoc Anh chỉ giúp mình
    cám ơn Bác rất nhiều
     
  6. tran ngoc anh

    tran ngoc anh Cử nhân

    Thường thì bạn mở cmd (hoặc terminal, powell shell đều được) tại thư mục ảnh. Gõ magick mogrify -format png *.svg
    Nhưng mình không chắc Magick có hỗ trợ svg hay không.
     
  7. tungxdbt

    tungxdbt Mầm non

    dòng lệnh Bác chỉ mình đã chuyển thành tệp svg thành png nhưng nó bị lỗi font, Bác xem lại giúp mình
    cám ơn Bác
     

    Các file đính kèm:

    • 0012.png
      0012.png
      Kích thước:
      8.8 KB
      Đọc:
      10
    • 0013.png
      0013.png
      Kích thước:
      10.5 KB
      Đọc:
      10
  8. tungxdbt

    tungxdbt Mầm non

    trong ABBYY FineReader 15.0.112.2130 Corporate Multilingual có xuất được tệp png trong suốt không, các Bác chỉ giúp mình với
    các ơn các Bác
     
  9. tran ngoc anh

    tran ngoc anh Cử nhân

    Vậy là Magick không hỗ trợ tốt cho svg rồi.
    Mình vẫn giữ quan điểm dùng trình duyệt để in svg vì giữ được text.
     
    tungxdbt thích bài này.
  10. tungxdbt

    tungxdbt Mầm non

    cám ơn Bác Ngoc Anh rất nhiều
     
  11. tungxdbt

    tungxdbt Mầm non

    Bác Ngoc Anh tìm hiểu phương pháp Bác hoangducvy hướng dẫn chỉ lại giúp mình, mình đang tịt ngòi vụ này, mong Bác giúp đỡ.
    cám ơn Bác rất nhiều
     
  12. Narga

    Narga Lớp 5

    Làm bằng dòng lệnh nên nhẹ nhàng mà sếp, với lại đt giờ toàn 8GB RAM, chip 10-20 nhân, mạnh gấp mấy lần máy tính bàn ý, phải tận dụng nó chứ :D
    Đây là đoạn code ghép svg, jpeg, png thành một trang hoàn chỉnh mình vẫn hay dùng, nhớ chỉnh lại đường dẫn đến Google Chrome trên máy hoặc hệ điều hành của bạn.
    (đoạn code này chạy tốt trên Linux, Android, Mac, mình không chắc trên Windows và iOS vì chưa thử)
    Mã:
    #!/bin/bash
    # @narga, t.me/ngayngaydocsach
    # License: aGPL v3.
    
    for i in $(seq -w 1 215); do
      FILENAME=$(printf "%04d" $i)
      SVG_FILE="$FILENAME.svg"
      PNG_FILE="$FILENAME.png"
      JPG_FILE="$FILENAME.jpg"
    
      echo "Convert $svgfile to $PNG_FILE by take browser's screenshot with Chrome headless mode"
      /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --headless --disable-gpu --screenshot=png/"$PNG_FILE" --default-background-color=FFFFFF --window-size=477,675 e/"$SVG_FILE"
    
      #echo "Converting $svgfile to transparent PNG..."
      #convert -density 300 -resize 411.024x581.102 -background none "$svgfile" "$pngfile"
    
      echo "Make the $PNG_FILE transparent background"
      convert png/"$PNG_FILE" -fuzz 20% -transparent white png/"$PNG_FILE"
      echo "Combine the $PNG_FILE with $JPG_FILE as background"
      convert jpg/"$JPG_FILE" png/"$PNG_FILE" -gravity center -composite result/"$PNG_FILE"
    
      echo "Converted $SVG_FILE"
    done
    Screenshot 2023-12-31 at 16.50.37.png
    • yêu cầu: imagemagik, trình duyệt chrome
    • cách thức: dùng Chrome tạo ảnh png từ svg, dùng imagemagik tạo png nền trong suốt, sau đó ghép với tập tin jpeg để ra một trang sách. (Chrome có cách tạo png nền trong bằng tham số
      --default-background-color=0, tuy nhiên mình không thấy có tác dụng cho nên mình làm thêm một bước kia.
    • các bạn có thể sửa vòng for chạy theo ý nhé, hiện tại là chạy từ 1 đến 215, tên tập tin sẽ gồm 3 số theo cấu trúc 001, 002, 003 đủ chạy đến 999.
    • các files ảnh để riêng từng thư mục
    • chỉ cần chạy file .sh trong thư mục là tự ghép các tập tin cho ra kết quả ở thư mục result
    Mình đính kèm bộ file mẫu mình vừa thử hoạt động tốt.
    Disclaimer: Vui lòng đọc kỹ mã nguồn và kiểm tra trước khi sử dụng, mình không chịu trách nhiệm nếu bạn gặp sự cố về dữ liệu và thiết bị.
     

    Các file đính kèm:

    Chỉnh sửa cuối: 31/12/23
    machine thích bài này.
  13. tran ngoc anh

    tran ngoc anh Cử nhân

    Trước tiên để mình tìm cách cài IM lên Android đã. Với lại máy mình cũ rồi chỉ có 6GB RAM :D
     
  14. tungxdbt

    tungxdbt Mầm non

    em cám ơn Bác Narga rất nhiều, hi vọng nó sẽ chạy tốt trên win
    trân trọng cám ơn các Bác
     
  15. machine

    machine Sinh viên năm I

    Cảm ơn bạn Narga :rose:
    Mình cũng có tìm hiểu thêm Vui lòng đăng nhập hoặc đăng ký để xem link mà không được :(
     
    Chỉnh sửa cuối: 1/1/24
  16. Narga

    Narga Lớp 5

    Nội dung đã được thay đổi để không ảnh hưởng tới các dịch vụ và nhà xuất bản.:cool:
     
    Chỉnh sửa cuối: 1/1/24
    machine thích bài này.
  17. machine

    machine Sinh viên năm I

    Công đức vô lượng :rose:
    Cảm ơn bạn :D
     
    Chỉnh sửa cuối: 1/1/24
    Narga thích bài này.
  18. tran ngoc anh

    tran ngoc anh Cử nhân

    Nếu đọc cá nhân thì việc get sachweb không hiệu quả. Ngoài ra không có ý kiến với gian thương bán lậu ebook :D
     
    machine and Narga like this.
  19. tran ngoc anh

    tran ngoc anh Cử nhân

    Dễ nhìn hơn nút F12 một chút :D
     
    Narga thích bài này.
  20. Narga

    Narga Lớp 5

    Nó mạnh hơn rất nhiều, thực ra thì cồng kềnh hơn cái F12 nhưng mà tại m cũng quen nên cái nào quen hơn thì dùng.
     
    tran ngoc anh thích bài này.

Chia sẻ trang này