PHP Konversi SVG Ke Jpg Elemen yang Hilang

Saya menggunakan php imagemagic untuk mengonversi svg ke jpg dan saya menggunakan perintah di bawah ini untuk konversi.

konversi -densitas 250 sumber.svg target.jpg

Saya berhasil mengonversi svg ke jpg tetapi beberapa elemen di svg hilang. Silakan periksa contoh di bawah ini

Masukkan SVG masukkan deskripsi gambar di sini

Keluaran JPG

masukkan deskripsi gambar di sini

Di sini Anda dapat melihat dengan jelas bahwa warna abu-abu muda di bagian samping diganti dengan warna putih. Dapatkah seseorang memberi tahu saya cara memperbaikinya.

FYI ini link untuk download SVG sebenarnya

https://drive.google.com/file/d/1vC5yaXds7ogcsTWjaDzkXZZFyKzLCsgf/view?usp=sharing


person Aravinthan M    schedule 11.09.2018    source sumber
comment
Silakan periksa postingan stackoverflow lainnya SVG Ke JPEG di sini   -  person IshaniNet    schedule 11.09.2018
comment
@SftAps sudah mencobanya, tetapi tidak berhasil. Masalah yang sama.   -  person Aravinthan M    schedule 11.09.2018
comment
Bukan berarti itu membantu Anda, tapi ini berfungsi dengan baik di mesin saya: Version: ImageMagick 6.9.7-4 Q16 x86_64 20170114 http://www.imagemagick.org   -  person Sean Bright    schedule 11.09.2018
comment
Juga berfungsi dengan baik dengan ImageMagick-7   -  person emcconville    schedule 11.09.2018
comment
@emcconville Saya mencoba dengan ImageMagic 7.0.8-11 tetapi masalah masih sama   -  person Aravinthan M    schedule 12.09.2018


Jawaban (2)


Perender SVG mana yang Anda gunakan? Ini bisa berupa Imagemagick MSVG/XML internal, delegasi RSVG, atau Inkscape (untuk meningkatkan fungsionalitas). Anda dapat mengetahuinya dengan menambahkan -verbose ke baris perintah Anda.

convert -verbose -density 250 source.svg target.jpg


Saya menggunakan Imagemagick 6.9.10.11 Q16 Mac OSX dengan penyaji internal MSVG/XML, RSVG 2.42.2_2 dan Inkscape 0.92.3_4. Ketiganya menghasilkan hasil yang berbeda. RSVG adalah yang terburuk. Inkscape adalah yang terbaik. Inilah hasil saya menggunakan perintah Anda.

convert -density 250 MSVG:source.svg target_msvg.jpg


masukkan deskripsi gambar di sini

convert -density 250 RSVG:source.svg target_rsvg.jpg


masukkan deskripsi gambar di sini

convert -density 250 source.svg target_inkscape.jpg


masukkan deskripsi gambar di sini

Biasanya RSVG lebih baik daripada MSVG Imagemagick. Namun di sini keadaannya tampak lebih buruk. Mungkin karena cara saya memodifikasi file delegasi.xml saya agar dapat menjalankan RSVG saat Inkscape diinstal. Penyaji MSVG juga telah ditingkatkan selama beberapa rilis terakhir. Jadi versi yang lebih lama mungkin tidak memberikan hasil sebaik.

person fmw42    schedule 11.09.2018
comment
Perintah verbose convert -verbose -density 250 source.svg target.jpg dihasilkan di bawah ini. mvg:/tmp/magick-LSfBdmJW=›/tmp/magick-LSfBdmJW MVG 1246x1076 1246x1076+0+0 DirectClass 16-bit 15.5KB 0.430u 0:00.439 /var/www/html/img/simulator/tmp/575562/sourceImageTopFront .svg SVG 1246x1076 1246x1076+0+0 DirectClass 16-bit 15,5KB 0,000u 0:00.000 /var/www/html/img/simulator/tmp/575562/sourceImageTopFront.svg=›/var/www/html/img/simulator /tmp/575562/sourceImageTopFront.jpg SVG 1246x1076 1246x1076+0+0 DirectClass 16-bit 106KB 0,020u 0:00.019 - person Aravinthan M; 12.09.2018
comment
konversi -format daftar | grep SVG Perintah ini dihasilkan di bawah MSVG -w+ renderer internal SVG milik ImageMagick SVG -w+ Scalable Vector Graphics SVGZ -w+ Compressed Scalable Vector Graphics - person Aravinthan M; 12.09.2018
comment
Saya masih menghadapi masalah yang sama. FYI saya menggunakan ImageMagic 7.0.8-11 - person Aravinthan M; 12.09.2018
comment
Instal Inkscape dan Anda akan mendapatkan hasil Inkscape seperti yang saya miliki di atas, jika itu hasil yang benar. - person fmw42; 12.09.2018

Akhirnya saya menemukan solusi untuk ini. Saya mengonversi svg ke gambar kanvas (format base64) melalui javascript dan melalui php saya telah mengonversi data base64 ke gambar jpg.

person Aravinthan M    schedule 12.09.2018