Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2010, 21:10   #11
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Я так понимаю вам нужно слегка затемнить исходный документ для того что бы выделить текст я вас правильно понял?
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 16.10.2010, 06:06   #12
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Да, типо того. Чтобы наложить шаблон на документ и скопировать тот текст, который я выделил рамкой.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 16.10.2010, 09:25   #13
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

а если сразу при выделении рамки этот текст копировать, т.е. через BitBlt куда нить на TGraphicControl и сохранить в файл. или вам нужно сохранять обязательно весь шаблон?

TGraphicControl не TImage, а TPaintBox например
ZuBy вне форума Ответить с цитированием
Старый 16.10.2010, 09:56   #14
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Цитата:
а если сразу при выделении рамки этот текст копировать, т.е. через BitBlt куда нить на TGraphicControl и сохранить в файл.
Это можно сделать. В принципе у меня это готово, но вот именно, что мне нужно
Цитата:
сохранять обязательно весь шаблон
В том-то и проблема, что я не имею понятия как можно придумать это и в какую сторону копать. Должно получиться, что-то наподобии трафарета чтоли.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 16.10.2010, 13:39   #15
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

А документ и шаблон идинаковы и будут ли у них постоянны размеры? Потому что если это так можно png попробывать
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 16.10.2010, 14:32   #16
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Цитата:
А документ и шаблон идинаковы и будут ли у них постоянны размеры?
Размер у Image, в который грузится документ, имеет постоянные размеры. Размеры у шаблона и документа тоже будут одинаковы, ведь первый делается на основе второго.
Цитата:
Потому что если это так можно png попробывать
Как именно?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 16.10.2010, 15:58   #17
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Цитата:
Как именно?
Точно сказать не могу потому что не могу пока сделать редактирование png зато могу подсказать сделать так: создать вторую форму, на неё bitmap c нужным цветом, включить alphablend у формы, transparent у bitmap(a) и у формы включить и на их canvas(ах) рисовать прямоугольники прикольно получиться да и не забудьте таскать вторую форму вместе с первой тоесть добавить вот это событие
Код:
procedure okno(var Msg: TWMWindowPosChanging);  message WM_WINDOWPOSCHANGING;
P.S. Извиняюсь про png если на юзаете редактирование png отправьте в личку или выложите здесь
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 17.10.2010, 11:48   #18
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

могу предложить так.

берем два буфера (тбитмап) с размерами исходного документа, в первый копируем исходный документ, а второй заливаем цветом (кроме clFuchsia) потом копируем рамку (с точными размерами) и через DrawTransparentBmp выводим в первый буфер и потом снова возвращаем в timage
Код:
procedure DrawTransparentBmp(Cnv: TCanvas; x, y: Integer;
  Bmp: TBitmap; clTransparent: TColor);
var
  bmpXOR, bmpAND, bmpINVAND, bmpTarget: TBitmap;
  oldcol: Longint;
begin
  try
    bmpAND := TBitmap.Create;
    bmpAND.Width := Bmp.Width;
    bmpAND.Height := Bmp.Height;
    bmpAND.Monochrome := True;
    oldcol := SetBkColor(Bmp.Canvas.Handle, ColorToRGB(clTransparent));
    BitBlt(bmpAND.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, Bmp.Canvas.Handle, 0, 0, SRCCOPY);
    SetBkColor(Bmp.Canvas.Handle, oldcol);

    bmpINVAND := TBitmap.Create;
    bmpINVAND.Width := Bmp.Width;
    bmpINVAND.Height := Bmp.Height;
    bmpINVAND.Monochrome := True;
    BitBlt(bmpINVAND.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, bmpAND.Canvas.Handle, 0, 0, NOTSRCCOPY);

    bmpXOR := TBitmap.Create;
    bmpXOR.Width := Bmp.Width;
    bmpXOR.Height := Bmp.Height;
    BitBlt(bmpXOR.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, Bmp.Canvas.Handle, 0, 0, SRCCOPY);
    BitBlt(bmpXOR.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, bmpINVAND.Canvas.Handle, 0, 0, SRCAND);

    bmpTarget := TBitmap.Create;
    bmpTarget.Width := Bmp.Width;
    bmpTarget.Height := Bmp.Height;
    BitBlt(bmpTarget.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, Cnv.Handle, x, y, SRCCOPY);
    BitBlt(bmpTarget.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, bmpAND.Canvas.Handle, 0, 0, SRCAND);
    BitBlt(bmpTarget.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, bmpXOR.Canvas.Handle, 0, 0, SRCINVERT);
    BitBlt(Cnv.Handle, x, y, Bmp.Width, Bmp.Height, bmpTarget.Canvas.Handle, 0, 0, SRCCOPY);
  finally
    freeAndNil(bmpXOR);
    freeAndNil(bmpAND);
    freeAndNil(bmpINVAND);
    freeAndNil(bmpTarget);
  end;
end;
P.S. если не так понял, сорри )
ZuBy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как image сохранить в файл ? juan666777 Мультимедиа в Delphi 11 13.12.2014 09:51
Проблема загрузки ХР, как результат конфликта Comodo Disk Encrypter и Acronis True Image 2010 HOME amberrise Windows 2 28.07.2010 14:19
Image* как свойство класса.Нужна помощь seregka Win Api 0 17.10.2009 21:34
Transparent color image если формат jpeg или jpg postal2 Компоненты Delphi 7 03.07.2009 12:14
Нормальный Transparent в Image??? Fre5h Компоненты Delphi 1 10.07.2008 08:44