2012-06-18 15 views
10

मुझे रैफेलज निर्यात प्लगइन (https://github.com/ElbertF/Raphael.Export) में कोई समस्या है। पथ तत्व में मैं गुण fill का उपयोग करता हूं और एक स्रोत के रूप में मैं पूर्णफाइल पर एक छवि यूआरएल देता हूं। लेकिन जब मैं इसे एसवीजी में निर्यात करता हूं तो मुझे पथ तत्व परिभाषा दिखाई देती है, लेकिन जब मैं इसे पीएनजी में निर्यात करता हूं, तो मैं फिर से नहीं देखता।छवि पृष्ठभूमि के रूप में पथ पृष्ठभूमि के साथ jpg में raphajjs को निर्यात करने में त्रुटि

तो मेरे एप्लिकेशन में मैं इस तरह एक attrpath के तत्व जोड़:

paper.path("M 195 10 L 300 L 195 z").attr({'stroke-width': 0,'fill': 'url(images/alfen/02/murek.png)'}); 

और मैं paper.toSVG()

के साथ इस निर्यात और मेरे एसवीजी में मैं एक रास्ता खोजने के:

<path transform="matrix(1,0,0,1,0,0)" fill="url(images/alfen/02/murek.png)" stroke="#000" d="M203,183.94389438943895L948,183.94389438943895L948,195L203,195Z" stroke-width="0"></path> 

लेकिन जब मैं इसे पीएनजी में बदलता हूं:

<?php 
    $json  = $_POST['json']; 
    $output  = str_replace('\"','"',$json); 
    $filenameSVG = 'test'; 

    file_put_contents("$filenameSVG.svg", $output); 

    $konwert = "convert $filenameSVG.svg $filenameSVG.jpg"; 

    system($konwert); 

मुझे यह पृष्ठभूमि मेरी पृष्ठभूमि के साथ पूरा नहीं मिल पा रही है। क्या कोई मदद कर सकता है?

+0

एक त्वरित अनुमान: या तो पूर्ण यूआरएल (डोमेन नाम के साथ) प्रदान करते हैं या उस छवि में विफल रहता है, एक स्थानीय पथ ('fill' विशेषता में)? 'कन्वर्ट' आपकी वेबसाइट, डोमेन या इसके बारे में कुछ भी नहीं जानता है। मेरी svg में – Wrikken

+0

मैं भी 'है <छवि को बदलने =" मैट्रिक्स (1,0,0,1,0,0) "preserveAspectRatio =" कोई नहीं "एक्स =" 0 "y =" 0 "चौड़ाई =" 108 "ऊंचाई = "48" XLink: href = "छवियों/Alfen/alfenlogo.png"> 'और इस ठीक से बदल जाती है – gerpaick

+0

हाँ, और यह' यूआरएल के साथ ('वहाँ शुरू नहीं करता है और यह एक स्थानीय पथ के रूप में व्याख्या की जा सकती लेकिन। क्यों लोगों का तर्क है? टेस्ट मैं तुम्हें बता! :) – Wrikken

उत्तर

1

यदि आप svg पर सही आउटपुट प्राप्त करने में सक्षम हैं लेकिन यह php में png पर जाने में विफल रहता है तो आपको कई चीजों की जांच करने की आवश्यकता होगी।

  • एक मानसिक स्वास्थ्य की जांच के रूप में सुनिश्चित करें कि आपके $ _POST [ 'json'] नहीं लौटा रहा है विकृत json बनाने
  • अपने php में अगली पंक्ति मुझे confuses: $output = str_replace('\"','"',$json);
  • यह हो सकता है कि json आप कर रहे हैं वापसी एक ही वस्तु है, लेकिन मुझे अभी भी यकीन नहीं है कि आप पूरी फाइल क्यों खोज रहे हैं और $output = str_replace('\"','"',$json['filename_and_path']); जैसे विशिष्ट नेस्टेड ऑब्जेक्ट की तलाश नहीं कर रहे हैं और यदि आप जो जेसन लौटते हैं, वह एक पंक्ति है, तो इसे संभालने के बेहतर तरीके हो सकते हैं - - यानी इसे एक स्ट्रिंग के रूप में पोस्ट करें या यहां तक ​​कि प्रत्येक को सरणी और अनुक्रमणिका के साथ वापस लौटाएं।

और इस सामान के लिए:

$konwert = "convert $filenameSVG.svg $filenameSVG.jpg"; 
system($konwert); 

आप अपने स्ट्रिंग में वैध चर के साथ system() खिला नहीं किया जा सकता।

$konwert = "convert".$filenameSVG.".svg ".$filenameSVG.".jpg"; 

तुम भी पर आदेश पर अमल करने वरना यह फ़ाइल नहीं मिलेगा अपने सर्वर पर फाइल करने के लिए पूर्ण filepath की जरूरत करने जा रहे हैं: सुनिश्चित करें कि मैं ठीक से स्ट्रिंग की तरह श्रृंखलाबद्ध की सलाह देते हैं होने के लिए। कोड $konwert = "convert".$filenameSVG.".svg ".$filenameSVG.".jpg"; स्पष्ट रूप से केवल आपके लिए काम करने जा रहा है यदि उन दो फाइलें आपकी परियोजना की मूल निर्देशिका में स्थित हैं।

मैं भी नहीं लगता है कि आप इस उदाहरण में system() का उपयोग करना चाहिए है। मेरी समझ यह है कि आपको छवि बाइनरी से निपटने के लिए passthru() का उपयोग करना चाहिए। वहाँ भी है exec() लेकिन वास्तव में, मुझे लगता है कि तुम यहाँ की जरूरत है passthru() है। देखें: http://www.php.net/manual/en/function.passthru.php

0

ऐसा लगता है कि आपका पथ छवि के लिए एक कंटेनर स्थापित कर रहा है। आप इसका उपयोग नहीं कर सके:

paper.image('images/alfen/02/murek.png', 50, 50, 300, 195); 

ऐसा लगता है कि यह अधिक विश्वसनीय हो सकता है। आप इसे अपने स्टार्टर के रूप में उपयोग कर सकते हैं और आपको पसंद करने वाले whetever पथ जोड़ सकते हैं। मुझे एक छवि को भरने के रूप में उपयोग करने में समस्याएं आई हैं क्योंकि वे कभी भी प्रस्तुत नहीं करते हैं जहां मैं उन्हें उम्मीद करता हूं।

और आप अभी भी उपयोग कर सकते हैं: paper.toSVG()

मुझे लगता है कि संस्करण कोई परेशानी के बिना कन्वर्ट करने के लिए प्राप्त करने में सक्षम था।

संबंधित मुद्दे