наткнулась в сети на следующую задачу:
Нужна программа которая будет переводить изображения (gif,png, и тд.) в html формат. Высокая скорость работы, небольшой размер выходного файла( желательно что бы не превышал исходный более чем в два раза).
Интерестно это как? Единственное решение прешедшее мне это таблицы, каждый пиксель изображение ячейка, задаем цвет получаем результат.
А теперь вопросы:
0) Есть ли решения кроме таблиц? DIV не расматриваем решение принципиально от табличного не отличаеться...
1) Зачем? Не вижу для какой цели может понадобиться, но жудко любопытно найдется ли практическое применение?
В приведение кода нет никакой необходимости, интерес чисто теоритический...
//если интерестно тема уже обсуждаеться
здесь
W>1) Зачем? Не вижу для какой цели может понадобиться, но жудко любопытно найдется ли практическое применение?
Впаривать рекламу корпоративщикам, у которых порезаны всякие картинки, флешки и баннерные адреса

)
Здравствуйте, wind13, Вы писали:
W>наткнулась в сети на следующую задачу:
W>Нужна программа которая будет переводить изображения (gif,png, и тд.) в html формат. Высокая скорость работы, небольшой размер выходного файла( желательно что бы не превышал исходный более чем в два раза).
W>Интерестно это как? Единственное решение прешедшее мне это таблицы, каждый пиксель изображение ячейка, задаем цвет получаем результат.
W>А теперь вопросы:
W>0) Есть ли решения кроме таблиц? DIV не расматриваем решение принципиально от табличного не отличаеться...
W>1) Зачем? Не вижу для какой цели может понадобиться, но жудко любопытно найдется ли практическое применение?
W>В приведение кода нет никакой необходимости, интерес чисто теоритический...
W>//если интерестно тема уже обсуждаеться здесь
Таблицы? Да боже вас упаси такой ерундой заниматься.
Генерим JScript вида:
<script>
function DrawPicture(PictureString) {
// Здесь алгоритм разбора этой строки и рисования картинки (о нем чуть позже)
}
DrawPicture('4x4:0100001001111011'); // Ниже объясню, что это за билиберда
</script>
Саму функцию рисования можно вынести в JS-файл и подцеплять его "налету".
Теперь об алгоритме рисования.
Собственно задача будет сводиться к двум этапам:
1. Можно конечно нас тороне клиента GIF какой-нить по точкам раскладывать. Я бы ради интереса, может, даже и взялся за эту задачу — формат несложный. Только вот проще это сделать на стороне сервера средствами какой-нить GD, где картинку можно преобразовать в понятную себе последовательность точек и их цветов, типа: "4x4:0100001001111011". Далее потребуется на стороне клиента разложить строку в двумерный массив. Учитывая, что можно применять несложные методы сжатия данных типа 001100101{12}001{5} и т.д., тут алгоритмы могут варьироваться.
2. Нарисовать картинку. Здесь я намеренно приводил нули и еденички, чтобы упростить пример. На самом же деле можно рисовать и цветные картинки, как с фиксированной палитрой, так и полноцвет. Самый простой способ рисования — это динамически создавать DIV-ы размером 1х1 пиксель с заданным цветом фона в цикле типа:
var ImgWidth = 4;
var ImgHeight = 4;
var oCont = document.getelementById('Cont');
if (oCont) {
oCont.style.width=ImgWidth;
oCont.style.width=ImgHeight;
for (var y=0; y<ImgHeight; y++) {
for (var x=0; x<ImgWidth; x++) {
var oDiv=document.createElement("DIV");
oCont.appendChild(oDiv);
oDiv.style.width = 1;
oDiv.style.height = 1;
oDiv.style.backgroundColor = 'red';
oDiv.style.position = 'relative';
oDiv.style.top = y;
oDiv.style.left = x;
}
}
}
Ну или что-то в этом роде. Писалось с нуля, работоспособность не проверял. И не уверен, что во всех браузерах сходу заработает.
Здравствуйте, wind13, Вы писали:
W>наткнулась в сети на следующую задачу:
W>Нужна программа которая будет переводить изображения (gif,png, и тд.) в html формат. Высокая скорость работы, небольшой размер выходного файла( желательно что бы не превышал исходный более чем в два раза).
W>Интерестно это как? Единственное решение прешедшее мне это таблицы, каждый пиксель изображение ячейка, задаем цвет получаем результат.
Ещё один вариант — это перевод графики-пиксельной в псевдо-графику. Таких программ уйма.
Здравствуйте, MBy, Вы писали:
MBy>Ещё один вариант — это перевод графики-пиксельной в псевдо-графику. Таких программ уйма.
во-во, к примеру не безызвестный MosASCII, результат работы которого можно увидеть тут:
http://www.rsdn.ru/Forum/?mid=341718Автор: DSD
Дата: 01.08.03
Здравствуйте, wind13, Вы писали:
W>Нужна программа которая будет переводить изображения (gif,png, и тд.) в html формат. Высокая скорость работы, небольшой размер выходного файла( желательно что бы не превышал исходный более чем в два раза).
W>Интерестно это как? Единственное решение прешедшее мне это таблицы, каждый пиксель изображение ячейка, задаем цвет получаем результат.
W>А теперь вопросы:
W>0) Есть ли решения кроме таблиц? DIV не расматриваем решение принципиально от табличного не отличаеться...
W>1) Зачем? Не вижу для какой цели может понадобиться, но жудко любопытно найдется ли практическое применение?
http://rsdn.ru/Forum/?mid=609381Автор:
Дата: 16.04.04
Здравствуйте, wind13, Вы писали:
W>наткнулась в сети на следующую задачу:
W>Нужна программа которая будет переводить изображения (gif,png, и тд.) в html формат. Высокая скорость работы, небольшой размер выходного файла( желательно что бы не превышал исходный более чем в два раза).
W>Интерестно это как? Единственное решение прешедшее мне это таблицы, каждый пиксель изображение ячейка, задаем цвет получаем результат.
W>А теперь вопросы:
W>[list]0) Есть ли решения кроме таблиц? DIV не расматриваем решение принципиально от табличного не отличаеться...
Возвращать из javascript-a картинку в формате xbm (только для черно-белых картинок) или xpm (IE этот формат до сих пор не поддерживает).
В Netscape это работало где-то с версии 3.0 (помнится лет 7-8 назад в сети встречал растровый граф-редактор на javascript, работающий именно таким способом).
<script>
function candle()
{
return "#define candle_width 21\n"+
"#define candle_height 28\n"+
"static char candle_bits[] = {"+
" 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,"+
" 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x08, 0x00, 0x00, 0x06, 0x00,"+
" 0x00, 0x18, 0x00, 0x00, 0x07, 0x00, 0x00, 0x08, 0x00, 0x00, 0x04, 0x00,"+
" 0x00, 0x1f, 0x00, 0x00, 0x14, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x16, 0x00,"+
" 0x00, 0x1d, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x16, 0x00,"+
" 0x00, 0x0d, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x16, 0x00,"+
" 0x00, 0x1d, 0x00, 0x55, 0xa5, 0x0a, 0xb4, 0x5a, 0x03, 0xa0, 0xd5, 0x00};"
}
</script>
<img src="javascript:candle()">
Здравствуйте, wind13, Вы писали:
W>Здравствуйте, MBy, Вы писали:
MBy>>Ещё один вариант — это перевод графики-пиксельной в псевдо-графику. Таких программ уйма.
W>Спасибо вариант с псевдографикой не пришел мне в голову
Как говорят за бугром, You are welcome