Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.22;
Скачать: CL | DM;

Вниз

Скопировать в буфер обмена 32bit Bitmap   Найти похожие ветки 

 
Billi332   (2005-07-29 12:25) [0]

Как можно скопировать в буфер обмена 32bit Bitmap ARGB, так что бы сохранился прозрвчный цвет?
Я делаю так но это не помогает  
B := TBitMap.Create;
B.PixelFormat := pf32bit;
B.Transparent := true;
B.TransparentColor := 0;

.................
B.SaveToClipboardFormat(MyFormat, AData, APalette);
С := TClipboard.Create;
C.SetAsHandle(MyFormat, AData);
C.Free;


 
AlexBond   (2005-08-04 22:07) [1]

Привожу код для сохранения картинки после нажатия на PrintScreen, удобно и быстро, гланвое нет никаких форм:


unit screen02;

interface

uses
 Windows, Graphics,clipbrd;

 private
   { Private declarations }
 public
   { Public declarations }
   z:integer;
 end;

implementation
var Bmp: TBitmap;

procedure TForm1.FormCreate(Sender: TObject);
begin
Bmp:= TBitmap.Create;
z:=0;
Application.ShowMainForm:=false;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if  IsClipboardFormatAvailable(cf_Bitmap)then
        begin
        bmp.LoadFromClipBoardFormat(cf_BitMap, ClipBoard.                 GetAsHandle(cf_Bitmap),0);
        bmp.SaveToFile("c:\screen\screen0"+inttostr(z)+".bmp");
        z:=z+1;
        ClipBoard.AsText:="0";
        bmp.FreeImage;
        end;
end;

end.

Данный код сохраняет скриншоты в формате экрана, при каждом нажатии на PrintScreen.

Не знаю почему у тебя не получается 32bit Bitmap, скорее всего у тебя не включен 32-bit режим или у тебя плохие просмоторщики картинок некоторые автоматически конвертируют в 24-bit.
Кстати зачем тебе это надо, прозрачный цвет почти нигде не используется, кроме как в 3d-текстурах.


 
Бугай   (2005-08-07 00:55) [2]

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


 
Sphinx ©   (2005-08-07 14:13) [3]

Кажется прозрачный цвет таким способом не сохранить (я про PrintScreen) да и как выбрать какие пиксели должны быть прозрачными, а какие - нет ? На экране нет такой информации !
А так, у TBitmap есть канва...у канвы есть свойство Pixels которое отвечает за цвет пикселя и равно Longword, для PixelFormat := pf32bit это будет ARGB цвет, на каждую составляющую по Byte. Соответсвенно первый байт - это и будет значение альфы.

TransparentColor - это НЕ альфа канал !!!


 
Valera   (2005-08-15 00:59) [4]

Для Graphics32 Пример
Copies/Pastes the Bitmap32 and its alpha channel to/from the clipboard
http://www.graphics32.org/downloads/3rdparty/EG_ClipboardBitmap32.pas



Страницы: 1 вся ветка

Текущий архив: 2006.01.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.028 c
2-1135866498
rruussllaann
2005-12-29 17:28
2006.01.22
проблема динамического создания компонента


3-1132823454
thvfrjd
2005-11-24 12:10
2006.01.22
Подключение к БД


4-1131548053
Igor_thief
2005-11-09 17:54
2006.01.22
Работа с реестром чужого пользователя


14-1135681109
Янис Прасол
2005-12-27 13:58
2006.01.22
Показ Balloon Tooltips в XP


8-1123675290
Voron
2005-08-10 16:01
2006.01.22
Как сделать снимок экрана