2013-10-12 4 views
0

Я использую this SVG to Bitmap library, который отлично работает, я думаю, но я думаю, что он начинает испортиться, когда я пытаюсь сохранить растровое изображение как файл PNG.Преобразование SVG в PNG изображение без заполнения строки

Dim svgDoc As SvgDocument = SvgDocument.Open(xml) 
svgDoc.Transforms = New SvgTransformCollection() 
svgDoc.Transforms.Add(New SvgScale(1, 1)) 
Dim bmp1 As Bitmap = svgDoc.Draw() 
bmp1.Save("C:\Signature.png", ImageFormat.Png) 
txtSvgResults.Text = xml.InnerXml 

Я передаю это SVG XML в функцию:

<svg id="canvasSvg" width="100%" height="100%" draggable="false"><polyline fill="none" stroke="navy" stroke-opacity="0.7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" points="100 103 101 103 102 103 102 104 102 106 102 107 102 109 102 111 102 112 102 116 102 119 102 120 102 124 102 127 102 130 102 135 102 138 102 141 102 146 102 149 102 152 102 157 102 160 102 162 102 165 102 168 102 171 102 174 102 177 102 180 102 184 102 187 102 189 102 192 102 195 102 196 102 198 102 200 102 203 102 204 102 205 102 208 102 209 102 212 102 215 102 216 102 217 102 218 102 219 102 220 102 221 102 222 102 223 102 224 102 225 102 226 102 227 102 228 102 229 102 230 102 231 102 232 102 233 103 233 106 234 107 234 110 234 114 235 118 235 123 236 132 236 137 236 144 236 153 236 160 236 165 236 172 236 176 236 179 236 185 236 187 236 189 236 193 236 196 236 197 236 200 236 202 235 203 235 205 235 206 235 206 234 206 233 206 232 206 231 207 229 207 228 207 227 208 225 208 224 208 223 209 222 209 221 210 219 210 218 210 217 210 216 210 215 211 212 211 210 211 209 211 207 211 205 211 204 211 202 211 201 211 200 211 198 211 196 211 195 211 193 211 192 211 189 211 187 211 186 211 184 211 182 211 181 211 180 211 178 211 177 211 175 211 174 211 173 211 172 211 171 211 169 211 167 211 166 211 165 211 163 211 162 211 161 211 160 211 158 211 157 211 156 211 155 211 154 211 153 211 152 211 151 211 150 211 148 211 146 211 144 211 142 211 140 211 139 211 138 211 137 211 135 211 134 212 133 212 132 212 130 213 128 213 127 213 126 213 125 213 124 213 123 213 122 213 121 214 120 214 119 214 118 214 117 214 116 214 115 214 114 214 113 214 112 214 111 214 110 214 109 214 108 214 107 214 106 215 105 217 105 218 105 219 105 222 105 224 105 227 105 232 105 236 105 240 105 245 105 249 105 253 105 258 105 261 105 263 105 266 105 267 105 268 105 270 105 271 105 272 105 273 105 274 105 275 104 276 104 277 104 279 104 281 104 283 104 284 104 285 104 286 104 287 104 288 104 289 104 290 104 291 104 292 104 293 103 295 103 296 103 298 103 299 103 300 103 301 103 303 103 304 103 305 103 306 103 306 104 306 105 306 106 306 107 306 108 306 109 306 110 307 112 307 113 307 114 307 115 307 116 307 117 307 119 307 120 307 122 307 124 307 126 307 128 307 130 307 131 307 133 307 136 307 137 307 138 307 141 307 142 307 144 307 145 307 147 307 149 307 151 307 153 307 154 307 155 307 156 307 157 307 158 307 159 307 160 307 161 307 162 307 163 307 164 307 165 307 166 306 167 306 168 306 169"></polyline></svg> 

Изображение что SVG представляет выглядит следующим образом:
enter image description here

Но изображения PNG, который получает выводимые выглядит например:
enter image description here

Когда я тестирую тот же SVG в проекте для просмотра образца библиотеки, похоже, он должен выглядеть так, что я не думаю, что проблема в библиотеке SVG.
enter image description here

ответ

2

Это похоже на ошибку в библиотеке, которую вы используете. Похоже, что применяется заливка, когда svg ясно говорит fill = "none". Вы должны сообщить об этом авторам.

В то же время обходным путем может быть создание элемента <path>, а не <polyline>.

+0

Спасибо за отзыв, но вы заметили эту часть моего вопроса? * «Когда я тестирую тот же SVG в проекте просмотра образца библиотеки, похоже, он должен выглядеть так, что я не думаю, что проблема в библиотеке SVG». * – RichC

+0

Да, я это видел. Но где еще это могло быть? Сам SVG в порядке. Приложение-зритель не обязательно использует тот же самый код для визуализации окна, которое оно использует для рендеринга в растровое изображение. –

+0

Моя первоначальная мысль была такой же, как у вас, но когда я использую средство просмотра в своем примере проекта, он отображает прекрасный (третий снимок экрана), поэтому я решил, что это то, что я делал в своем преобразовании из BMP в PNG. Я проверю с разработчиком, как вы предложили. – RichC

Смежные вопросы