2016-01-20 1 views
1

Теперь я создал приложение, которое кодирует значение в QR-код и превращается в изображение. Затем я хочу сохранить изображение на своем локальном. Но я попробовал множество решений, которые я нашел в Google, и здесь. Проблема все еще неожиданно появляется каждый раз. Ниже приведен мой код и пример изображения ошибки. Пожалуйста, помогите мне! A generic error occured in GDI+VB.NET Общая ошибка произошла в GDI +, когда Bitmap.Save()

Dim qrCodeObject As QRCodeEncoder = New QRCodeEncoder() 
    Dim image As Image 
    Dim bitmap As Bitmap 

    qrCodeObject.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE 
    qrCodeObject.QRCodeScale = 6 
    qrCodeObject.QRCodeVersion = 5 
    qrCodeObject.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H 

    image = qrCodeObject.Encode(value) 
    bitmap = New Bitmap(image) 
    bitmap.Save(value + ".jpg") 

ОТВЕТ: Всегда сохраняйте файл с другим именем и не включает в себя любые недопустимые символы

+1

Что такое «ценность», когда это происходит? – Plutonix

+0

Вы должны использовать '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''. Если у вас есть опция Strict On, это безопаснее. –

+0

Конкатенация строк с '+' в VB подвержена ошибкам. Используйте '&' или еще лучше 'Path.Combine()' для создания имен файлов. @MattWilko избил меня. – Jens

ответ

0

Путь конкатенации с простыми строками является дерьмо. Используйте Path.Combine, чтобы построить путь, потому что это гарантирует, что ваш путь содержит необходимые косые черты, если он иначе недействителен.

Dim Pat As String = Path.Combine(String.Concat(value, ".jpg")) 

bitmap.save(Pat) 

Если это не поможет, нам необходимо знать, что содержит «значение» в вашем случае.

+0

'Path.Combine' не исправляет/не фильтрует или не устраняет незаконные символы. Протестируйте свой код, используя значение = '' foo: bar? "' Результат по-прежнему неактивен – Plutonix

+0

Фактически мое значение обычно заменяется хеш-значением ID – IvanTuang

+0

Plutonix Извините, вы правы. Path.Combine не восстанавливает/не фильтрует или не устраняет незаконные символы. Я видел сам письменный метод, который имел эту функциональность. IvanTuang могли бы вы после того, что вы получаете, когда вы пишете: Dim Pat As String = Path.Combine (String.Concat (значение, ".jpg")) певд Exception (Pat) ? – SiriSch