bodya
|
|
1 | |
Response.BinaryWrite и пробелы между символами18.09.2008, 20:49. Показов 939. Ответов 4
Метки нет (Все метки)
Использую Response.BinaryWrite для вывода сформированного gif, в результате картинка не отображается. Смотрю результат вывода и вижу примерно такое G I F 8 9 ... Все символы через пробел, код #20. Самое странное, если я вывожу константу, вот так Response.BinaryWrite 'AAAZZZ', то в результате всё впорядке AAAZZZ - без всяких пробелов. Буду очень благодарен за любые мысли и рекомендации. Также, если у кого есть примеры генерации gif и/или других форматов на ASP дайте пожалуйста ссылки или вышлите сами исходники.
|
18.09.2008, 20:49 | |
Ответы с готовыми решениями:
4
Проблема с Response.BinaryWrite Response.BinaryWrite + файл Excel-a Странности с Response.BinaryWrite / content-disposition - attachment Передача большого файла клиенту через Response.BinaryWrite |
al
|
|
19.09.2008, 05:40 | 2 |
http://www.relib.com/forums/topic.asp?id=732908
|
bodya
|
|
21.09.2008, 14:50 | 3 |
(Пожалуйста, смотрите первое сообщение этой нити)
Что интересно, если записать строку содержащую сформированный gif в файл, то gif оказывается корректным и нормально отображается. Вот код записи в файл: Код
'strNewGif содержит наполнение gif 'GIF89...' 'strPath имя файла Set objFSO = CreateObject('Scripting.FileSystemObject') Set objTextFile = objFSO.CreateTextFile(strPath, True) objTextFile.Write strNewGif |
bodya
|
|
21.09.2008, 17:24 | 4 |
(К первому же сообщению в этой нити)
Проблема решена!!! Уже был испробован метод вывода посредством ADODB.Stream, с предварительным заталкиванием строки в Recordset в виде поля adVarBinary. До ума не доводил, так как, вызрела модификации с изменениями в один символ (!!!). При формирвании строки с телом gif из массива integer значений используем CharB вместо Char - вот и всё! В результате получается строка содержащая однобайтовые символы, которые в неизменённом виде выводятся Response.BinaryWrite Вот пример: Код
'//цвет единственного пикселя и прозрачность :) intRed = 100 intGreen = 0 intBlue = 0 intTransparent = 0 '// формируем однопиксельный gif Dim myArray(42) myArray(0) = 71 myArray(1) = 73 myArray(2) = 70 myArray(3) = 56 myArray(4) = 57 myArray(5) = 97 myArray(6) = 1 myArray(7) = 0 myArray(8) = 1 myArray(9) = 0 myArray(10) = 128 myArray(11) = 0 myArray(12) = 0 '//RGB values myArray(13) = intRed myArray(14) = intGreen myArray(15) = intBlue myArray(16) = 0 myArray(17) = 0 myArray(18) = 0 myArray(19) = 33 myArray(20) = 249 myArray(21) = 4 '//Transparency value If intTransparent = 0 Then myArray(22) = 0 Else myArray(22) = 1 End If myArray(23) = 0 myArray(24) = 0 myArray(25) = 0 myArray(26) = 0 myArray(27) = 44 myArray(28) = 0 myArray(29) = 0 myArray(30) = 0 myArray(31) = 0 myArray(32) = 1 myArray(33) = 0 myArray(34) = 1 myArray(35) = 0 myArray(36) = 0 myArray(37) = 2 myArray(38) = 2 myArray(39) = 68 myArray(40) = 1 myArray(41) = 0 myArray(42) = 59 '//Create gif string 'Dim strNewGif (42) For i = 0 To 42 strNewGif = strNewGif & ChrB(myArray(i)) 'strNewGif = strNewGif & Chr(myArray(i)) '//Must be one byte per char, instead Chr generate 2 bytes chars as UNICODE Next '//Output to HTTP Response.Buffer = True Response.ContentType = 'image/gif' Response.BinaryWrite strNewGif Response.Flush |
bodya
|
|
21.09.2008, 17:26 | 5 |
Сорррииии
надо читать ChrB и Chr вместо CharB и Char - совсем от жары запарился! |
21.09.2008, 17:26 | |
21.09.2008, 17:26 | |
Помогаю со студенческими работами здесь
5
Как на сервере открыть графический файл получить битовый массив и с помощью Response.BinaryWrite его отдать запрашиваемугу обьекту? Проблема с передачей файла клиенту через Response.binarywrite Добавить пробелы между символами Поставить пробелы между символами в массиве Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |