На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> GDI+ и ранжированная прозрачность (Alpha) , Для двух TBitmap
    t1, t2 : TBitmap. Нужно получить t3: TBitmap, такой чтобы t1 был на x% прозрачный а t2 такой какой и был. Спасибо. Чем можно для этого в GDI+ воспользоваться?
      Может просто по-хитрому складывать цвета?
        ExpandedWrap disabled
          Var
            Matrix:TColorMatrix =
             ((1.0, 0.0, 0.0, 0.0, 0.0),
              (0.0, 1.0, 0.0, 0.0, 0.0),
              (0.0, 0.0, 1.0, 0.0, 0.0),
              (0.0, 0.0, 0.0, 0.4, 0.0),
              (0.0, 0.0, 0.0, 0.0, 1.0));
           
          Procedure AlphaDraw(AFrom,AAlpha,ATo:TBitmap;AWidth,AHeight,APercent:Integer);
          Var
            Graphics:GPGraphics;
            Bitmap:GPBitmap;
            Attributes:GPImageAttributes;
          Begin
            Matrix[3,3]:=APercent/100;
            GdipCreateFromHDC(ATo.Canvas.Handle,Graphics);
            GdipCreateBitmapFromHBITMAP(AFrom.Handle,AFrom.Palette,Bitmap);
            GdipDrawImageRectI(Graphics,Bitmap,0,0,AWidth,AHeight);
            GdipDisposeImage(Bitmap);
            GdipCreateBitmapFromHBITMAP(AAlpha.Handle,AAlpha.Palette,Bitmap);
            GdipCreateImageAttributes(Attributes);
            GdipSetImageAttributesColorMatrix(Attributes,ColorAdjustTypeBitmap,True,@Matrix,Nil,ColorMatrixFlagsDefault);
            GdipDrawImageRectRect(Graphics,Bitmap,0,0,AWidth,AHeight,0,0,AWidth,AHeight,UnitPixel,Attributes,Nil,Nil);
            GdipDisposeImageAttributes(Attributes);
            GdipDisposeImage(Bitmap);
            GdipDeleteGraphics(Graphics);
          End;

        Пример:
        ExpandedWrap disabled
          Image3.Canvas.FillRect(Image3.ClientRect); // Image3 не должен быть пустым
          AlphaDraw(Image1.Picture.Bitmap,Image2.Picture.Bitmap,Image3.Picture.Bitmap,128,128,50);

        Результат:
        в Image3 будет скопирован Image1, а поверх него с 50% прозрачностью Image2
          и что, ничего на замену нет?.... нельзя базовыми средствами добицца похожего результата? ну или средствами, которые не требуют установки на конечном компьютере какого либо дополнительного стороннего софта.... пару библиотек можно и с собой таскать,главное чтобы ставить не надо было - типа лив-сд "все свое ношу с собой"

          зыж ошипся темой поначалу.....

          сорри - сам накопал уже
          Зеркальное отражение изображение
          Плавный вывод рисунка в TImage
          Сообщение отредактировано: mAAAd -
            можно и без ГДИ+, просто ГДИ :)
            только вручную, и большой скорости ждать не приходится (если использовать tbitmap и scanline, и не ударяться в асм). Хотя для ГУИ это "выше крыши"
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0308 ]   [ 16 queries used ]   [ Generated: 27.04.24, 12:40 GMT ]