Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Desktop, Получение рабочего стола без фона 
:(
    Опции темы
php
Дата 2.8.2007, 06:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Как получить раб. стол т.е его снимок без фонового рисунка только иконки ну и сами окна  примеру ??
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Virtuals
Дата 2.8.2007, 08:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 476
Регистрация: 27.11.2006

Репутация: 4
Всего: 11



никак, рисунок загружен в окно рабочего стола DC=0;
ну если только отключить фоновой рисунок, скопировать изображение, включить рисунок smile 
PM MAIL ICQ   Вверх
php
Дата 2.8.2007, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Да ну ерунда, я ведь уверен, что способ есть  smile 
Взять тот же RAdmin, PCAnywhere там ведь получение идёт частичное без фона, чем и разгружает траффик, вопрос как это можно реализовать ???
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Alexeis
Дата 2.8.2007, 12:23 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



  Может получает картинку рабочего стола и вычитает из нее рабочий стол, затем все что нечерное заливает белым, после чего делает операцию AND с исходной, тогда рабочий стол удалиться а все остальное останется на месте.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
bems
Дата 2.8.2007, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 21
Всего: 88



попробуй поработать с ним, как с обычным ListView


--------------------
Обижено школьников: 8
PM MAIL   Вверх
php
Дата 3.8.2007, 06:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Alexeis, bems вот это уже интересно поподробнее, плиз !
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Alexeis
Дата 3.8.2007, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



  Путь к обоям можно найти тут 
1)  HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper
  Это всегда будет битмап с битностью цвета такой какая установлена в системе.

2) битовые операции над картинками осуществляет функция BitBlt, параметры операции устанавливаются последним параметром.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
php
Дата 6.8.2007, 06:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Так и что нам это даёт? т.е мы можем преобразовать битмап с меньшей битностью, но как сделать его монотонным ? или я что-то не так понял??
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
BaD_SeCt0R
Дата 6.8.2007, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lazy Coder
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 9.10.2006
Где: Анапа

Репутация: 3
Всего: 18



Если суть в экономии трафика, и если нужны только иконки и окна, то можно просто составить список иконок, их мест, а также по дескрипторам окон составить запись всех контролов этих окон. Это, конечно, будет работать в случае, если окон не много. А так Alexeis прежложил, помоему очень неплохой вариант. Юзай BitBlt/TransparentBlt smile 


--------------------
Кто владеет информацией - владеет миром. (С) Френсис Бэкон.
PM MAIL ICQ   Вверх
php
Дата 7.8.2007, 04:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Согласен вариант очень неплохой только не могу реализовать, может поможете ??
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Alexeis
Дата 7.8.2007, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



Код

type
  BGRALine = array[0..32000] of Cardinal;
  PBGRALine = ^BGRALine;

procedure TForm1.Button1Click(Sender: TObject);
var
 r      : TRegistry;
 w      : AnsiString;
 b1, b2,
 b3     : Tbitmap;
 dc     : hDC;
 p1, p2 : PBGRALine;
 i, j   : Integer;
 c      : Cardinal;
begin
  r := TRegistry.Create;
  r.RootKey := HKEY_CURRENT_USER;
  r.OpenKey('Control Panel\Desktop', false);
  w := r.ReadString('Wallpaper');

  if FileExists(w)
  then
    Begin
      b1 := Tbitmap.Create;
      b1.LoadFromFile(w);
      b2 := Tbitmap.Create;
      b2.Width  := Screen.Width;
      b2.Height := Screen.Height;
      DC        := GetDC(0);
      BitBlt(b2.Canvas.Handle, 0, 0, b2.Width, b2.Height,
             DC, 0, 0, SRCCOPY);
      ReleaseDC(0, DC);
      b2.SaveToFile('C:\1.bmp');
      b3        := Tbitmap.Create;
      b3.Assign(b2);

      b1.PixelFormat := pf32bit;
      b2.PixelFormat := pf32bit;
      for I := 0 to b2.Height - 1
      do
        Begin
          p1 := b1.ScanLine[i];
          p2 := b2.ScanLine[i];
          for j := 0 to b2.Width - 1
          do
            if p1[j] <> p2[j]
            then
              p2[j] := $00FFFFFF
            else
              p2[j] := $00000000;
        End;

      BitBlt(b3.Canvas.Handle, 0, 0, b3.Width, b3.Height,
             b2.Canvas.Handle, 0, 0, SRCAND);
      b3.SaveToFile('C:\1.bmp');
      b1.Free;
      b2.Free;
      b3.Free;
    End;
end;


Есть проблемы. Если исходная картинка для обоев была другого размера, то работать не будет, а сделать стретч так же как винда не получается, да и не получиться ведь в зависимости от версии метод сжатия/растяжения может меняться. Исходный формат не имеет значения, так как винда все равно конвертит его в BMP, а вот как бы найти ее кэшированую картинку... 
Ну впрочем можно проверять если картинка отличается от размеров рабочего стола, то не применять методику.

Вот, а вот результирующая pngшка сжалась до 32кб. см. Атач.

Это сообщение отредактировал(а) Alexeis - 7.8.2007, 11:52

Присоединённый файл ( Кол-во скачиваний: 28 )
Присоединённый файл  2.png 31,65 Kb


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Virtuals
Дата 7.8.2007, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 476
Регистрация: 27.11.2006

Репутация: 4
Всего: 11



сам же себя и опровергаю // смотрим ЗЫ
о нашел нечто похожее, сам бился над проблемой получения окна скрытого другим,
решение
_+_+_+
function PrintWindow(hwnd: HWND; hdcBlt: HDC; nFlags: UINT): BOOL; stdcall;

implementation

function PrintWindow; external user32 name 'PrintWindow';
+_+_+_+_

PrintWindow(findwindow('Progman',nil), PaintBox2.Canvas.Handle, 0);

\\но именно с progmanom какието глюки

ща расковыриваю функцию PrintWindow \\ ни разу не видел ее

и в 2000 исходниках не находил smile [QUOTE]

она заставляет приложение отрисоватся в другом месте, (и иногда приложение забывает где правильно рисовать smile )
ЗЫ короче рисунок находится на DC=0
а иконки на окне 'Progman' (прозрачном)

dash1 

Это сообщение отредактировал(а) Virtuals - 7.8.2007, 19:07
PM MAIL ICQ   Вверх
php
Дата 8.8.2007, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Да блин в этом то и проблема тут ведь идёт попиксельное сравнение двух изображений
исходной картинки и раб. стола, но если размер результирующей picture не совпадает тут начинаются проблемы..... smile 

Щас тоже буду думать как оптимизировать это дело позже сообщу о результатах....
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
php
Дата 8.8.2007, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Да кстати тут ещё одну приколюху нашёл немного не затирается рисунок вокруг
надписей у иконок  smile , это от чего может быть такой эффект ?
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Alexeis
Дата 8.8.2007, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



  Ну тут проблема с альфа-каналом думаю, с одной стороны цвет отличается от картинки, с другой содержит ее часть, так что как-то так...


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
php
Дата 9.8.2007, 03:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



В общем у меня тут идея возникла как создать картинку соразмерную с рабочим столом,
в рез-те чего картинку из Wallpappers использовать не будем, а сделаем так:

1) При загрузке системы прикрываем на время Explorer в рез-те чего уберутся все
иконки и таскбар, делаем быстренько скриншот экрана и помещаем его в папку Windows
или System32 не важно, под названием скажем Cache.bmp, затем снова запускаем Explorer.

При последующей загрузке системы если файл уже существует то ничего больше не делаем, таким образом мы получаем изображение соразмерное с раб. столом.

Как вам моя идея ? Или не очень ?
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Alexeis
Дата 9.8.2007, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



Цитата(php @  9.8.2007,  03:18 Найти цитируемый пост)
Как вам моя идея ? Или не очень ? 

  А если обои сменили?


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Rennigth
Дата 9.8.2007, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 8
Всего: 76



Цитата(php @  9.8.2007,  03:18 Найти цитируемый пост)
Как вам моя идея ? Или не очень ? 

если честно не очень...

Цитата(Alexeis @  9.8.2007,  12:09 Найти цитируемый пост)
А если обои сменили? 

Ну это можно и отловить smile



--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
php
Дата 9.8.2007, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Ну а если обои сменили, то определяем размер и дату изменения файла, если
какое-либо из условий не совпадает, значит обои поменяли заново обновляем файл вот и
всё, можно и по другому изменение отловить... Ваши предложения ???

Цитата

если честно не очень...


Есть идеи получше  smile ??
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Virtuals
Дата 9.8.2007, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 476
Регистрация: 27.11.2006

Репутация: 4
Всего: 11



Цитата(php @ 8.8.2007,  15:11)
Да кстати тут ещё одну приколюху нашёл немного не затирается рисунок вокруг
надписей у иконок  smile , это от чего может быть такой эффект ?

тень!
PM MAIL ICQ   Вверх
php
Дата 30.9.2007, 03:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Так продолжая тему двухмесячной давности..
вот мы сравнили две картинки методом ScanLine,
а можно ли как-то выделить эти изменившиеся части изображения и сохранить их
в файл или поток для дальнейшей обработки ???
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Alexeis
Дата 30.9.2007, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



  Какая обработка предвидится?


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
php
Дата 1.10.2007, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Сохранение выделеных кусков в поток передача их по сети к клиенту (это уже моя забота),
ну и далее "налепление" выделенных кусков на существующее предыдущее изображение

Вот такая обработка !
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Alexeis
Дата 1.10.2007, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



Цитата(php @  1.10.2007,  11:12 Найти цитируемый пост)
ну и далее "налепление" выделенных кусков на существующее предыдущее изображение

  Если только это, то советую ничего не выделять, а пожимать в RLE. т.е. повторяющиеся последовательности кодировать числом повторений и указанием повторяющегося цвета. Если кадров мало то еще луше для сжатия использовать zLib.

Добавлено через 59 секунд
  Налепливать - процесс долгий, да и мерцать будет неслабо, лучше уж кадр целиком.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
php
Дата 1.10.2007, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Вот все говорят пожимать в RLE, а что можно по подробнее ??

zLib использовать пробовал тормоза "жутчайшие" может правда не то пробовал
это было из папки Demos в Delphi где-то.

Добавлено через 1 минуту и 28 секунд
Да кстати может его в png конвертить сразу в таком случае как его перевести из bmp в png ?
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Alexeis
Дата 1.10.2007, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



Цитата(php @  1.10.2007,  12:41 Найти цитируемый пост)
Да кстати может его в png конвертить сразу в таком случае как его перевести из bmp в png ? 

  Это еще медленнее.

Про RLE есть в вики http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%...%80%D0%B8%D0%B9

Есть в MSDN, но там алгоритм для 16/256 цветов.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
php
Дата 2.10.2007, 06:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Можно ссылку на MSDN тоже ?, в принципе для 16/256 цветов тоже нормальный вариант !
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Alexeis
Дата 2.10.2007, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



Цитата

Microsoft Run Length Encoding (RLE)

This is a description of Microsoft's run length encoding (RLE) data
format, as excerpted from their official documentation. MS RLE data can
occur in both static BMP images and AVI animations.

------------------------

Bitmap Compression

Windows versions 3.0 and later support run-length encoded (RLE) formats for
compressing bitmaps that use 4 bits per pixel and 8 bits per pixel.
Compression reduces the disk and memory storage required for a bitmap.

Compression of 8-Bits-per-Pixel Bitmaps

When the biCompression member of the BITMAPINFOHEADER structure is set to
BI_RLE8, the DIB is compressed using a run-length encoded format for a
256-color bitmap. This format uses two modes: encoded mode and absolute mode.
Both modes can occur anywhere throughout a single bitmap.

Encoded Mode

A unit of information in encoded mode consists of two bytes. The first byte
specifies the number of consecutive pixels to be drawn using the color index
contained in the second byte.  The first byte of the pair can be set to zero
to indicate an escape that denotes the end of a line, the end of the bitmap,
or a delta. The interpretation of the escape depends on the value of the
second byte of the pair, which must be in the range 0x00 through 0x02.
Following are the meanings of the escape values that can be used in the
second byte:

Second byte     Meaning

0       End of line.
1       End of bitmap.
2       Delta. The two bytes following the escape contain unsigned values
indicating the horizontal and vertical offsets of the next pixel from the
current position.

Absolute Mode

Absolute mode is signaled by the first byte in the pair being set to zero and
the second byte to a value between 0x03 and 0xFF. The second byte represents
the number of bytes that follow, each of which contains the color index of a
single pixel. Each run must be aligned on a word boundary.  Following is an
example of an 8-bit RLE bitmap (the two-digit hexadecimal values in the
second column represent a color index for a single pixel):

Compressed data         Expanded data

03 04                   04 04 04
05 06                   06 06 06 06 06
00 03 45 56 67 00       45 56 67
02 78                   78 78
00 02 05 01             Move 5 right and 1 down
02 78                   78 78
00 00                   End of line
09 1E                   1E 1E 1E 1E 1E 1E 1E 1E 1E
00 01                   End of RLE bitmap

Compression of 4-Bits-per-Pixel Bitmaps

When the biCompression member of the BITMAPINFOHEADER structure is set to
BI_RLE4, the DIB is compressed using a run-length encoded format for a
16-color bitmap. This format uses two modes: encoded mode and absolute mode.

Encoded Mode

A unit of information in encoded mode consists of two bytes. The first byte
of the pair contains the number of pixels to be drawn using the color indexes
in the second byte.

The second byte contains two color indexes, one in its high-order nibble
(that is, its low-order 4 bits) and one in its low-order nibble.

The first pixel is drawn using the color specified by the high-order nibble,
the second is drawn using the color in the low-order nibble, the third is
drawn with the color in the high-order nibble, and so on, until all the
pixels specified by the first byte have been drawn.

The first byte of the pair can be set to zero to indicate an escape that
denotes the end of a line, the end of the bitmap, or a delta. The
interpretation of the escape depends on the value of the second byte of the
pair. In encoded mode, the second byte has a value in the range 0x00 through
0x02. The meaning of these values is the same as for a DIB with 8 bits per
pixel.

Absolute Mode

In absolute mode, the first byte contains zero, the second byte contains the
number of color indexes that follow, and subsequent bytes contain color
indexes in their high- and low-order nibbles, one color index for each pixel.
Each run must be aligned on a word boundary.
Following is an example of a 4-bit RLE bitmap (the one-digit hexadecimal
values in the second column represent a color index for a single pixel):

Compressed data         Expanded data

03 04                   0 4 0
05 06                   0 6 0 6 0
00 06 45 56 67 00       4 5 5 6 6 7
04 78                   7 8 7 8
00 02 05 01             Move 5 right and 1 down
04 78                   7 8 7 8
00 00                   End of line
09 1E                   1 E 1 E 1 E 1 E 1
00 01                   End of RLE bitmap


Но об этом много знать и не нужно, так как RLE 256/16 поддерживается на уровне API. Функция GetDIBits() - возвращает такую сжатую маску.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
php
Дата 3.10.2007, 03:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Можно на примере, а то я только на C++ нашёл ??
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
php
Дата 11.10.2007, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Так стоп в смысле "сжатую" маску прошу разъяснить ?
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Alexeis
Дата 11.10.2007, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



Цитата(php @  11.10.2007,  12:39 Найти цитируемый пост)
Так стоп в смысле "сжатую" маску прошу разъяснить ? 

  Ну эт я так иногда называю битовую карту. Правильнее сжатая битовая карта, т.е. растр другими словами.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
php
Дата 12.10.2007, 05:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Сорри за глупые вопросы, но что мне это даёт ? и как мне это применить в моём
случае ?
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Alexeis
Дата 12.10.2007, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



  Это дает то что скриншоты получаются маленькими по размеру и не так загружают сеть. 
Цитата(php @  12.10.2007,  05:53 Найти цитируемый пост)
и как мне это применить в моём
случае ? 

  Сжать картинку, передать, на той стороне распаковать, сложить с фоном и получить на экране картинку рабочего стола.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
php
Дата 12.10.2007, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



В смысле маленькими по размеру тут нужно уточнить имеется ввиду размер по высоте-длине
или фактический размер картинки в байтах если да то насколько меньше они по размеру ??
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Alexeis
Дата 12.10.2007, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



фактический. На сколько зависит от картинки. Разностные должны хорошо жаться, думаю если экран меняется медленно то 100 раз реально.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
php
Дата 12.10.2007, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Что-то я видимо совсем туплю или чего-то не понимаю всё таки ещё раз
картинка сжимается чем-либо еще типа zLib или она уже сжатая битовая карта посредством
этого GetDIBits  или как его там?? и её прямо так можно уже отправлять по сети??
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Alexeis
Дата 12.10.2007, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



  GetDIBits можно использовать для RLE сжатия картинок с числом цветов не более 256, потому он врядли пригодиться... Если формат соответствует то можно прям так и отправлять. Но сейчас на 256 цветах почти не работают... потому прийдеться свой алгоритм писать. 
  
  Еще есть вариант сжимать в TIFF или PCX. Эти форматы тоже хранят изображения сжатые методом RLE.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
php
Дата 15.10.2007, 03:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Да кстати, я что это борландовцы зажилили исходный код файла Jpeg.pas
можно ли где-то его достать ??
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Alexeis
Дата 15.10.2007, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



php, метод jpeg жмет медленно и некачественно чертежи или изображения с множеством тонких и контрастных линий. ИМХО лучше копать в сторону TIFF. Он популярный и быстрый.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
php
Дата 16.10.2007, 03:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Да я уже заметил, что Jpeg явно уступает по скорости сжатия даже ZLib.
А что правда TIFF очень быстрый что-то я про это ничего нигде не слышал или что-то пропустил ??
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Alexeis
Дата 16.10.2007, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



 Ну я вот порылся в инете, оказывается что TIFF поддерживает различные форматы сжатия. Быстрым разумеется будет только PackBits (RLE).

Цитата(http://ru.wikipedia.org/wiki/TIFF)

TIFF (англ. Tagged Image File Format) — формат хранения растровых графических изображений. Изначально был разработан компанией Aldus в сотрудничестве с Microsoft, для использования с PostScript. TIFF стал популярным форматом для хранения изображений с большой глубиной цвета, используется при сканировании, отправке факсов, распознавании текста, в полиграфии, широко поддерживается графическими приложениями. TIFF был выбран в качестве основного графического формата операционной системы NeXTstep, и из неё поддержка этого формата перешла в Mac OS X. Владелец спецификаций Aldus впоследствии объединилась с Adobe, владеющей в настоящее время правом на использование формата.

Файлы формата TIFF, как правило, имеют расширение .tiff или .tif.


  Можно себе что-то подобрать отсюда


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
RA
Дата 17.10.2007, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 7
Всего: 115



Не знаю как там работают всякие: RAdmin и PCAnywhere, но подход с вычитанием десктопа из принт скрина ИМХО - LOL.  smile 


Гораздо интересней получить координаты иконок и ассоциированные с ними картинки, а потом расположить их в соответствии и разрешением экрана у себя на клиентской части отображения, что касается открытых окон на фоне десктопа то тут уже много разных траффико-экономичных подходов можно применить. К примеру если окно эксплореровское то можно получить его координаты, а также координаты иконок и сами иконки и расположить всё это у себя, при этом можно учитывать файлы с индивидуальными иконками и файлы с общими иконками.
Если окно чужое то тупо сфоткать его область, и получить его координаты.
Если окно видно из под окна, то сфоткать общую область совместно занимаемого квадрата, а потом исходя из координат окошек вырезать всё что лишнее (С не прямоугольными окнами получится галимо) , ну и тд ......  smile 

Это сообщение отредактировал(а) RA - 17.10.2007, 00:44
PM   Вверх
php
Дата 17.10.2007, 03:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.2.2003

Репутация: нет
Всего: 3



Да да да всё это уже пройденный этап и иконки получал и даже
окна нестандартной формы с получением её регионов, но тут есть свои подводные камни
во первых много в системе разных "суетливых" манипуляций я уже точно не помню в чём,
но у меня в процессе разработки возникла какая-то проблема с этим всем делом.
--------------------
Джедаи не пройдут..
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.1552 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.