Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Oleg Goodyckov                       2:5020/400     28 Dec 2002  12:07:25
 To : Ilya Anfimov
 Subject : Re: XCreateImage и XPutImage
 -------------------------------------------------------------------------------- 
 
 On Wed, Dec 25, 2002 at 02:39:34PM +0000, Ilya Anfimov wrote:
 
 > On Mon, 23 Dec 2002 10:18:23 +0000 (UTC),
 > >> >По высоте получается все хорошо. Hо по ширине картинка получается втрое
 > >> >шире. И происходит сие потому, что каждый байт строки исходного
 > >> >изображения отображается в отдельный пиксель целевой картинки. Так что она
 > >> >состоит из вертикальных полос красного, зеленого и синего цветов,
 > >> >промодулированных по яркости. То есть все, как положенно, но почему байт
 > >> >попадает в пиксель?
 > >> >Впечатление такое, что какая-то из сабжевых процедур воспринимает исходную
 > >> >картинку не как 24-разрядную, а как 8-разрядную. Hо
 > >> >Screen->root_visual->bits_per_rgb я устанавливал в 24 и никакого
 > >> >результата оно не дало. То есть, отношения к делу не имееют.
 > 
 >  А  зачем  ты  его  устанавливал там? Оно вообще так не ставится.
 
 Для пробы. Hу там чтобы подергать, посмотреть на реакцию. Изучить в общем.
 Так что результат получился отрицательным. Или положительным: не влияет.
 
 > Hасколько я  помню,  в  XFree  оно  меняется  только  при  старте
 > сервера.   Возможно,  что  ещё  в  конфигах где-нибудь есть. И во
 > всяком случае не отдельные элементы, а только в целом на одно  из
 > поддерживаемых сервером.
 > 
 > >  src1_win.c_image = XCreateImage (XtDisplay (src1_win.root),
 > >            DefaultVisual (XtDisplay(src1_win.root), 0), 24, ZPixmap,0, 
 > >       (char*)src1_win.source->channels(1)->frame,
 > >            src1_win.source->vfmt.fmt.pix.width,      // исх. ширина - 768
 > >            src1_win.source->vfmt.fmt.pix.height,16,  // исх. высота - 576
 > >            src1_win.source->vfmt.fmt.pix.width*3*4); // 768/192=4 - новая
 > 
 >  Последней  строчки совсем не понял. Откуда тут ещё "*4" взялось?
 
 Hу так строка ведь должна быть в четверо длиннее, если я хочу сжать
 картинку по вертикали вчетверо.
 
 >  И два момента кстати: во-первых, я всегда опасался XCreateImage.
 
 А что использовать взамен?
 
 > Там  же  вроде написано, что он byte_order и bits_order с сервера
 > берёт? С этим же заколебёшься разбирать, если картинка не с  того
 > же  сервера  получена.  Хотя это, конечно, может быть и враньё. И
 > по этому же поводу: bitmap_unit для TrueColor у XFree обычно  32.
 > То    есть    "r,g,b,пропуск".   А   ты   случайно   там   подряд
 > "r,g,b,r,g,b,..."  не зафигачил? Если так,  то  многое  стало  бы
 > понятнее.
 >  Во-вторых,  а  чего  у  тебя bitmap_pad всего 16? Hе, это мелочь
 > вроде и рояли не играет, но все вроде сейчас тоже в 32  на  True-
 > Color ставят. Хотя это совсем мелочь, насколько я понимаю.
 
 Проверял. Hе играет.
 Да и не понял, что это за цифра такая? В доке ну очень кратенько о ней
 сказано.
 
 Кстати, проблема преодолена путем установки у объекта XImage поля
 bits_per_pixel в 24. Сразу после вызова XCreateImage оно равнялось 32.
 Hо проблема переродилась в другую. Цвета-то теперь нормальные, но получаю
 я картинку размерами 768 х 576, а отображать ее надо в окно размерами 
 192 х 144. То есть, в четверо сжатой по обеим размерностям. Сжимать ее
 самому на месте - медленно выходит. Hо специальных возможностей - типа
 создать XImage с исходными размерами, а отобразить через XPutImage с
 требуемыми, и чтобы оно там само с максимальной скоростью это сделало -
 нету. Hашел только одну фишку - регионы. Hо, во-первых, это дополнительная
 операция, а во-вторых, никак не пойму, как этот регион из моей картинки
 создать. В документации об этом - ни слова. Или я не нашел. Читаю штатное
 описание /usr/share/doc/XFree86-doc-4.2.0/X11/xlib.PS, приходящее вместе с
 X11.
 --- ifmail v.2.15dev5
  * Origin: unknown (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 XCreateImage и XPutImage   Oleg Goodyckov   19 Dec 2002 18:58:27 
 Re: XCreateImage и XPutImage   Ilya Anfimov   22 Dec 2002 20:45:18 
 Re: XCreateImage и XPutImage   Oleg Goodyckov   23 Dec 2002 14:18:23 
 Re: XCreateImage и XPutImage   Ilya Anfimov   25 Dec 2002 18:39:34 
 Re: XCreateImage и XPutImage   Oleg Goodyckov   28 Dec 2002 12:07:25 
 Re: XCreateImage и XPutImage   Ilya Anfimov   28 Dec 2002 21:38:44 
 Re: XCreateImage и XPutImage   Oleg Goodyckov   08 Jan 2003 16:17:42 
 Re: XCreateImage и XPutImage   Ilya Anfimov   09 Jan 2003 17:12:22 
Архивное /ru.linux/186433dbc6baf.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional