Q&A

  • 다시질문---사운드 죽이기...쩝
프로그램상에서 sndplaysound('*.wav', snd_async) 함수를

써서 사운드를 출력했는데 기럭지가 20초정도 되는데

중간에 죽이는방법은 없나해서요....

3  COMMENTS
  • Profile
    이상돈 1999.04.03 22:08
    이미지가 두개 있습니다.

    이미지1은 배경

    이미지2는 사진(인물은외에는 일정한 색(파랑이나 검정)

    두이미지를 합성하고 싶은데 쉽지가 않네요.

    배경이미지에 이미지2를(인물부분만)합성해서

    새이미지를 만들어 저장해야하거든요.

    부탁합니다.

    질문만 올려서 죄송....^^;

  • Profile
    신인재 1999.06.17 22:45
    쩝 MCI함수를 써서 플레이를 해야 될꺼같습니다..



    자료실에 제가 올려놓은 MciPlay.pas가 있습니다.



    인스톨 컴포넌트로 인스톨하여 쓰시면 편합니다...



    지팡이 께서 말씀하시기를...

    > 프로그램상에서 sndplaysound('*.wav', snd_async) 함수를

    > 써서 사운드를 출력했는데 기럭지가 20초정도 되는데

    > 중간에 죽이는방법은 없나해서요....





  • Profile
    이정욱 1999.04.04 04:55
    하이텔서 퍼왔습니다.



    번 호 : 2827

    게시자 : 민성기 (오랑캐꽃)

    등록일 : 1999-02-27 23:55

    제 목 : [응모] 델파이 퀴즈...



    안녕하세요... 민성기 입니다.



    항상 퀴즈를 내 주시는 지훈님께 감사 드리며... ^^;



    음... 예전엔 복잡하고 희안하게 했다가... 요즘엔 RX의 소스를

    고대로 배껴서 쓰고 있습니다. 빠르고 좋길래... 흐흐흐...



    퀴즈 응모 입니당...



    procedure StretchBltTransparent(DstDC: HDC; DstX, DstY, DstW, DstH: Integer;

    SrcDC: HDC; SrcX, SrcY, SrcW, SrcH: Integer; Palette: HPalette;

    TransparentColor: TColorRef);

    const

    PaletteMask = $02000000;

    var

    Color: TColorRef;

    bmAndBack, bmAndObject, bmAndMem, bmSave:HBitmap;

    bmBackOld, bmObjectOld, bmMemOld, bmSaveOld: HBitmap;

    MemDC, BackDC, ObjectDC, SaveDC: HDC;

    palDst, palMem, palSave, palObj: HPalette;



    function PaletteColor(Color: TColor): Longint;

    begin

    Result := ColorToRGB(Color) or PaletteMask;

    end;



    begin

    { Create some DCs to hold temporary data }

    BackDC := CreateCompatibleDC(DstDC);

    ObjectDC := CreateCompatibleDC(DstDC);

    MemDC := CreateCompatibleDC(DstDC);

    SaveDC := CreateCompatibleDC(DstDC);

    { Create a bitmap for each DC }

    bmAndObject := CreateBitmap(SrcW, SrcH, 1, 1, nil);

    bmAndBack := CreateBitmap(SrcW, SrcH, 1, 1, nil);

    bmAndMem := CreateCompatibleBitmap(DstDC, DstW, DstH);

    bmSave := CreateCompatibleBitmap(DstDC, SrcW, SrcH);

    { Each DC must select a bitmap object to store pixel data }

    bmBackOld := SelectObject(BackDC, bmAndBack);

    bmObjectOld := SelectObject(ObjectDC, bmAndObject);

    bmMemOld := SelectObject(MemDC, bmAndMem);

    bmSaveOld := SelectObject(SaveDC, bmSave);

    { Select palette }

    palDst := 0; palMem := 0; palSave := 0; palObj := 0;

    if Palette <> 0 then begin

    palDst := SelectPalette(DstDC, Palette, True);

    RealizePalette(DstDC);

    palSave := SelectPalette(SaveDC, Palette, False);

    RealizePalette(SaveDC);

    palObj := SelectPalette(ObjectDC, Palette, False);

    RealizePalette(ObjectDC);

    palMem := SelectPalette(MemDC, Palette, True);

    RealizePalette(MemDC);

    end;

    { Set proper mapping mode }

    SetMapMode(SrcDC, GetMapMode(DstDC));

    SetMapMode(SaveDC, GetMapMode(DstDC));

    { Save the bitmap sent here }

    BitBlt(SaveDC, 0, 0, SrcW, SrcH, SrcDC, SrcX, SrcY, SRCCOPY);

    { Set the background color of the source DC to the color, }

    { contained in the parts of the bitmap that should be transparent }

    Color := SetBkColor(SaveDC, PaletteColor(TransparentColor));

    { Create the object mask for the bitmap by performing a BitBlt() }

    { from the source bitmap to a monochrome bitmap }

    BitBlt(ObjectDC, 0, 0,SrcW, SrcH, SaveDC, 0, 0, SRCCOPY);

    { Set the background color of the source DC back to the original }

    SetBkColor(SaveDC, Color);

    { Create the inverse of the object mask }

    BitBlt(BackDC, 0, 0, SrcW, SrcH, ObjectDC, 0, 0, NOTSRCCOPY);

    { Copy the background of the main DC to the destination }

    BitBlt(MemDC, 0, 0, DstW, DstH, DstDC, DstX, DstY, SRCCOPY);

    { Mask out the places where the bitmap will be placed }

    StretchBlt(MemDC, 0, 0, DstW, DstH, ObjectDC, 0, 0, SrcW, SrcH, SRCAND);

    { Mask out the transparent colored pixels on the bitmap }

    BitBlt(SaveDC, 0, 0, SrcW, SrcH, BackDC, 0, 0, SRCAND);

    { XOR the bitmap with the background on the destination DC }

    StretchBlt(MemDC, 0, 0, DstW, DstH, SaveDC, 0, 0, SrcW, SrcH, SRCPAINT);

    { Copy the destination to the screen }

    BitBlt(DstDC, DstX, DstY, DstW, DstH, MemDC, 0, 0,

    SRCCOPY);

    { Restore palette }

    if Palette <> 0 then begin

    SelectPalette(MemDC, palMem, False);

    SelectPalette(ObjectDC, palObj, False);

    SelectPalette(SaveDC, palSave, False);

    SelectPalette(DstDC, palDst, True);

    end;

    { Delete the memory bitmaps }

    DeleteObject(SelectObject(BackDC, bmBackOld));

    DeleteObject(SelectObject(ObjectDC, bmObjectOld));

    DeleteObject(SelectObject(MemDC, bmMemOld));

    DeleteObject(SelectObject(SaveDC, bmSaveOld));

    { Delete the memory DCs }

    DeleteDC(MemDC);

    DeleteDC(BackDC);

    DeleteDC(ObjectDC);

    DeleteDC(SaveDC);

    end;



    헥헥~



    쓸 때는 다음과 같이 ... ^^;



    procedure TForm1.Button1Click(Sender: TObject);

    var

    DestBitmap : TBitmap;

    SrcBitmap : TBitmap;

    begin

    DestBitmap := TBitmap.Create;

    SrcBitmap := TBitmap.Create;

    try

    DestBitmap.Width := Image2.Picture.Bitmap.Width;

    DestBitmap.Height := Image2.Picture.Bitmap.Height;

    DestBitmap.Canvas.Draw(0, 0, Image2.Picture.Bitmap);

    SrcBitmap.Assign(Image1.Picture.Bitmap);



    StretchBltTransparent(

    DestBitmap.Canvas.Handle,

    0, 0, DestBitmap.Width, DestBitmap.height,

    SrcBitmap.Canvas.Handle,

    0, 0, SrcBitmap.Width, SrcBitmap.Height,

    SrcBitmap.Palette,

    clBlack

    );



    Image3.Picture.Bitmap.Assign(DestBitmap);

    finally

    DestBitmap.Free;

    SrcBitmap.Free;

    end;

    end;



    음... Image2의 이미지 중 검은 부분을 Image1에 '투명'하게

    올려서리... Image3에 보여주는 놈 입니다.



    이번 기회에 성능 죽여주는 투명 비트맵 예제를 건질 수 있으면

    좋겠네요~







    이상돈 wrote:

    > 이미지가 두개 있습니다.

    > 이미지1은 배경

    > 이미지2는 사진(인물은외에는 일정한 색(파랑이나 검정)

    > 두이미지를 합성하고 싶은데 쉽지가 않네요.

    > 배경이미지에 이미지2를(인물부분만)합성해서

    > 새이미지를 만들어 저장해야하거든요.

    > 부탁합니다.

    > 질문만 올려서 죄송....^^;





    • 이광주
    • 1999.04.03 06:32
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.06 22:31
      이광주 wrote: > THTML콤퍼넌트의 프린트기능을 구현하기 어려워 ActiveX Control에 있는 > IE를 불러 붙...
    • 오인균
    • 1999.06.17 23:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.06.18 00:26
      오인균 께서 말씀하시기를... > 델파이4로 명함관리 프로그램을 작성중인데요.. > 질문이 있습니다.. > ...
    • 구자송
    • 1999.04.03 17:50
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 이현신
      1999.06.17 23:00
      델파이에서 아주 간단한 콘솔 프로그램을 만들었는데.. 중간에 어떤 작업을 시켜놓고 대기(for문)를 해 야...
    • 이정욱
      1999.04.06 06:06
      제가 알기로는 정품이 그 기능을 지원하는것으로 알고 있습니다. 퀵리포트 정품이 말이죠... 구자송 ...
    • 이현신
      1999.06.17 23:17
      이현신 께서 말씀하시기를... > 델파이에서 아주 간단한 콘솔 프로그램을 만들었는데.. > 중간에 어떤 작...
    • 구자송
      1999.04.06 10:25
      이정욱 wrote: > 제가 알기로는 정품이 그 기능을 지원하는것으로 알고 있습니다. > 퀵리포트 정품이 말...
    • 안치봉
      1999.04.06 22:40
      qusoft에서 구입하실수 있을것입니다. 나이렉스에서 구입대행도 가능합니다. 구자송 wrote: > 이정욱 ...
    • 왕초
    • 1999.06.17 22:03
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최석기
      1999.06.17 22:13
      왕초 께서 말씀하시기를... > MDIChild폼이 모두 Minimized되어 있는데요.. > 이 MDIChild폼을 MDI 메인 ...
    • 안정한
    • 1999.06.17 21:50
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 구자송
      1999.04.03 17:50
      패키지 프로그램을보면 인쇄전에 화면에서 ReportForm을 변경해서 인쇄를 할수있는 프로그램들이 있는데 어...
    • 이정욱
      1999.04.06 06:06
      제가 알기로는 정품이 그 기능을 지원하는것으로 알고 있습니다. 퀵리포트 정품이 말이죠... 구자송 ...
    • 구자송
      1999.04.06 10:25
      이정욱 wrote: > 제가 알기로는 정품이 그 기능을 지원하는것으로 알고 있습니다. > 퀵리포트 정품이 말...
    • 안치봉
      1999.04.06 22:40
      qusoft에서 구입하실수 있을것입니다. 나이렉스에서 구입대행도 가능합니다. 구자송 wrote: > 이정욱 ...
    • 지팡이
    • 1999.06.17 21:29
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이상돈
      1999.04.03 22:08
      이미지가 두개 있습니다. 이미지1은 배경 이미지2는 사진(인물은외에는 일정한 색(파랑이나 검정) 두이...
    • 신인재
      1999.06.17 22:45
      쩝 MCI함수를 써서 플레이를 해야 될꺼같습니다.. 자료실에 제가 올려놓은 MciPlay.pas가 있습니다. ...
    • 이정욱
      1999.04.04 04:55
      하이텔서 퍼왔습니다. 번 호 : 2827 게시자 : 민성기 (오랑캐꽃) 등록일 : 1999-02-27 23:55 제 ...
    • 디제이
    • 1999.06.17 21:11
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이상돈
      1999.04.03 22:08
      이미지가 두개 있습니다. 이미지1은 배경 이미지2는 사진(인물은외에는 일정한 색(파랑이나 검정) 두이...
    • 김영대
      1999.06.18 03:29
      디제이 께서 말씀하시기를... > Record 형으로 저장된 파일을 읽고 쓸려고 합니다. > 헌데 문제는 Record...
    • 이정욱
      1999.04.04 04:55
      하이텔서 퍼왔습니다. 번 호 : 2827 게시자 : 민성기 (오랑캐꽃) 등록일 : 1999-02-27 23:55 제 ...
    • 문창완
      1999.04.03 18:59
      원본이미지를 출력(프린팅)할때 좌우가 바뀐(대칭된)이미지로 출력하고자 합니다. 방법이 없을까요? ...
    • 최석기
      1999.06.17 20:28
      최기훈 께서 말씀하시기를... > 최석기님이 보내주신 답변 잘받았습니다. > 하지만 TNotifyIconData에 해...
    • 안치봉
      1999.04.03 21:40
      문창완 wrote: > 원본이미지를 출력(프린팅)할때 좌우가 바뀐(대칭된)이미지로 > 출력하고자 합니다. > ...
    • 이호선
      1999.06.17 18:26
      안녕하세요 Chartfx콤퍼넌트를 사용하는데 배포 컴퓨터에 클래스가 등록되지 않았다는 에러가 나오는군요...
    • 안치봉
      1999.04.01 23:02
      문창완 wrote: > 비디오 화상위에 투명 이미지를 씌우고자 하는데 잘 안돼네요... > 통신상에 있는 컴포...
    • 최석기
      1999.06.17 19:16
      이호선 께서 말씀하시기를... > 안녕하세요 > Chartfx콤퍼넌트를 사용하는데 배포 컴퓨터에 클래스가 등...
    • 문창완
      1999.04.03 19:02
      그 문제는 안치봉님 께서 알려준 방법으로 해결하기 보다는 인터넷에서 컴포넌트를 구해서 해결했습니다...
    • 문창완
    • 1999.04.03 18:59
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 북해
      1999.06.17 18:02
      안녕하세요. 동적생성한 버튼을 해체하려하는데 잘 안되네요. 단순히 하나의 버튼을 동적생성하고 해체하는...
    • 안치봉
      1999.04.03 21:40
      문창완 wrote: > 원본이미지를 출력(프린팅)할때 좌우가 바뀐(대칭된)이미지로 > 출력하고자 합니다. > ...
    • 최석기
      1999.06.17 19:10
      북해 께서 말씀하시기를... > 안녕하세요. 동적생성한 버튼을 해체하려하는데 잘 안되네요. 단순히 하나의...
    • 최기훈
    • 1999.06.17 18:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최석기
      1999.06.17 19:12
      최기훈 께서 말씀하시기를... > Window를 구현하는데 궁금한 점이 있어서 이렇게 글을 올립니다. > 작업 ...
    • 한 재
    • 1999.06.17 17:40
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 구자송
      1999.04.03 17:50
      패키지 프로그램을보면 인쇄전에 화면에서 ReportForm을 변경해서 인쇄를 할수있는 프로그램들이 있는데 어...
    • 이정욱
      1999.04.06 06:06
      제가 알기로는 정품이 그 기능을 지원하는것으로 알고 있습니다. 퀵리포트 정품이 말이죠... 구자송 ...
    • 구자송
      1999.04.06 10:25
      이정욱 wrote: > 제가 알기로는 정품이 그 기능을 지원하는것으로 알고 있습니다. > 퀵리포트 정품이 말...
    • 안치봉
      1999.04.06 22:40
      qusoft에서 구입하실수 있을것입니다. 나이렉스에서 구입대행도 가능합니다. 구자송 wrote: > 이정욱 ...
    • 문창완
    • 1999.06.17 07:39
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이대선
      1999.04.03 05:44
      keybd_event를 어떻게 사용해야 하는지 궁금합니다. keybd_event($41,VK_SNAPSHOT,KEYEVENTF_EXTENDEDKE...
    • 최석기
      1999.06.17 17:47
      문창완 께서 말씀하시기를... > 지금 소리가 나는 사운드(Wav 파일)를 어떻게 죽이죠...? > 알려주세요. ...
    • 안치봉
      1999.04.03 07:33
      이대선 wrote: > keybd_event를 어떻게 사용해야 하는지 궁금합니다. > > keybd_event($41,VK_SNAPSHOT...
    • 이호선
    • 1999.06.17 06:34
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 황순갑
      1999.04.03 05:21
      찾습니다. 디지탈카메라의 소스 (비주얼베이직) 을 델파이 소스로 변환해 주실분을 찾습니다. 메일...
    • 최석기
      1999.06.17 17:38
      이호선 께서 말씀하시기를... > 안녕하세요. > ActiveX에서 Chartfx를 사용하는데 배포할때 클래스가 등...
    • 안치봉
      1999.04.03 07:31
      황순갑 wrote: > > 찾습니다. > 디지탈카메라의 소스 (비주얼베이직) 을 델파이 소스로 > 변환해 ...
    • 이주흥
    • 1999.06.17 06:18
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.06.17 06:35
      이주흥 께서 말씀하시기를... > 하하 ... 또 질문입니다..이거 자꾸 막히네요.. > 저기 ..OpenDialog에서...
    • 이해진
    • 1999.04.03 02:19
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.03 04:30
      필드의 종류와 이름들을 말씀해 주세요. 거기에 문제가 있을 수 도있습니다. 특히 한글로 필드명을 준다...
    • 이해진
      1999.04.03 06:35
      델파이에서 테이블 컴포넌트를 사용하지 않고 쿼리 컴포넌트를 사용하니까 문제가 해결되었습니다. 테이...
    • 이광주
    • 1999.04.03 06:32
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.06 22:31
      이광주 wrote: > THTML콤퍼넌트의 프린트기능을 구현하기 어려워 ActiveX Control에 있는 > IE를 불러 붙...
    • 김진성
    • 1999.06.17 03:24
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최석기
      1999.06.17 17:43
      김진성 께서 말씀하시기를... > 에궁~ 밑에 질문을 했었는데, 너무 길어져서 이곳에 다시 올립니다. > 저...
    • 초보
    • 1999.06.17 03:04
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이대선
      1999.04.03 05:44
      keybd_event를 어떻게 사용해야 하는지 궁금합니다. keybd_event($41,VK_SNAPSHOT,KEYEVENTF_EXTENDEDKE...
    • 안치봉
      1999.04.03 07:33
      이대선 wrote: > keybd_event를 어떻게 사용해야 하는지 궁금합니다. > > keybd_event($41,VK_SNAPSHOT...