Главная страница
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.031 c
14-1135852155
Kerk
2005-12-29 13:29
2006.01.22
как букву VV в клавиатуру засунуть?


14-1135489651
begin...end
2005-12-25 08:47
2006.01.22
С Днём рождения! 25 декабря


3-1132771300
alexmember
2005-11-23 21:41
2006.01.22
Задержка отображения записей на pentium 3


2-1136464094
RDS
2006-01-05 15:28
2006.01.22
Работа с динамическим массивом


2-1135937910
Silver__Dragon
2005-12-30 13:18
2006.01.22
запуск exe