Q&A

  • form블랜딩시 질문입니다.
제가 뉴스 자막처럼 처리되게 공부 할려고 하는데요 동영상보이게 하는 판넬 위에 폼을 하나 만들어서
보이게 만들었습니다. 라벨을 투명도 옵션주고 하니 자막 비슷하게 작동하기는 합니다.
하지만 이게 라벨까지 같이 덩달아 투명도 옵션이 먹어서 고민입니다.

아침 뉴스에 보면 파넬은 파란색으로 반투명하게 처리하고 글자의 경우 그렇지 않게 처리하는데 이것을 어떻게 처리하게 돼는지 궁금합니다.

바쁘시더라도 답변 부탁드리겠습니다.

제가 form소스를 보니 이부분이 매인폼 알파블랜디 처리하는 부분인거 같은데 이것을 위의 폼의 판넬위에 적용하면 label이 블랜딩 안 붙지 않을가 생각하는데요...
procedure TCustomForm.SetLayeredAttribs;
const
  cUseAlpha: array [Boolean] of Integer = (0, LWA_ALPHA);
  cUseColorKey: array [Boolean] of Integer = (0, LWA_COLORKEY);
var
  AStyle: Integer;
begin
  if not (csDesigning in ComponentState) and
    (Assigned(SetLayeredWindowAttributes)) and HandleAllocated then
  begin
    AStyle := GetWindowLong(Handle, GWL_EXSTYLE);
    if FAlphaBlend or FTransparentColor then
    begin
      if (AStyle and WS_EX_LAYERED) = 0 then
        SetWindowLong(Handle, GWL_EXSTYLE, AStyle or WS_EX_LAYERED);
      SetLayeredWindowAttributes(Handle, FTransparentColorValue, FAlphaBlendValue,
        cUseAlpha[FAlphaBlend] or cUseColorKey[FTransparentColor]);
    end
    else
    begin
      SetWindowLong(Handle, GWL_EXSTYLE, AStyle and not WS_EX_LAYERED);
      RedrawWindow(Handle, nil, 0, RDW_ERASE or RDW_INVALIDATE or RDW_FRAME or RDW_ALLCHILDREN);
    end;
  end;
end;

다시한번 바쁘시더라도 답변 부탁드리겠습니다.
2  COMMENTS
  • Profile
    타락천사 2007.05.06 19:14
    흠.. 다른 분도 대답이 없군요..

    먼저 뉴스의 자막은 테입에 담긴 영상을 영상편집 장비를 이용하여 작업한 겁니다.
    졸라 비싼 겁니다.

    대부분의 티비 영상의 자막은 테입에 담긴 영상을 영상편집 장비를 이용하여 편집한 겁니다.
    그럼, 실시간 자막 의 경우는 어떻게 하느냐 하면.....
    우선 공중파 방송의 경우에는 실시간 방송이 거의 없습니다. 최소한 몇초의 시간 간격이 있습니다.
    그래도 실시간 방송이 있고, 자막을 보내는 경우에는 간단한 글씨와 이미지 정도 보입니다.

    제가 방송국에 근무하며 직접 본 것이므로 이에 대해 이견은 없을 겁니다.

    현실은 위와 같구요..

    질문과 같이 뉴스 자막처럼 처리되게 하려면, 기본적으로 반투명 이미지 한번 뿌려주고 그 다음에 불투명 자막 이미지를 뿌려주어야 합니다.

    건투를 빕니다.
  • Profile
    고광민 2007.05.07 18:54
    그냥 이미지 뿌리거나 동영상에 상관없이 만들려고 생각한 부분입니다.
    제일 하단에 있는 것과 같이 폼을 두개 만들어 한개는 블랜딩으로
    한개는 투명하게 해서 글자만 반투명하게 해서 처리해 보앗습니다.
    그래서 제가 생각하는 것과 같이 나왔습니다.
    이건 제가 밖에서 바람쐬며 곰곰히 생각해 보니 이렇게 하는게 맞나 해서 만들어