애니메이션 GIF가있는 C # PictureBox가 프레임을 건너 뜁니다.

user3174558

PictureBox 컨트롤에서 이미지 값으로 사용한 애니메이션 GIF가 탐색기에서 표시되는 것보다 느리게 표시되는 문제가 있습니다.

C # Winforms를 사용하고 있습니다.

여기서 문제는 일부 프레임이 실행 중에 건너 뛴다는 것입니다.

누군가이 문제를 확인하고 해결책을 가질 수 있습니까?

My Picture Box는 Preloading 용이며 Background Thread에서 완벽하게 작동합니다.

GIF에서 프레임을 하나씩 읽고 자체 제작하여 picturebox에 애니메이션을 적용 할 수 있습니까?

감사!

메이 삼 아사 디

이 코드를 사용하십시오. 초당 25 프레임이 표시되므로 타이머를 40으로 설정했습니다. 즉, 40 밀리 초마다 한 프레임을 의미합니다. (1000ms / 25 frames = 40ms)

1 단계.이 방법은 사용 방법을 보여줍니다.

static Image[] images;
int frameCount = 0;
private void Btn_Click(object sender, EventArgs e)
{  
    //get gif image
    object ezgif_com_video_to_gif = Resources.ResourceManager.GetObject("ezgif_com_video_to_gif");
    images = getFrames((Image)ezgif_com_video_to_gif);//convert to frames array

    //show frames
    System.Timers.Timer timer = new System.Timers.Timer();
    timer.Interval = 40;
    timer.Elapsed += Timer_Elapsed;
    timer.Start();
}

2 단계. 타이머 틱 추가

private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
    pictureBox1.Image = images[frameCount];
    frameCount++;
    if (frameCount > images.Length - 1)
        frameCount = 0;
}

3 단계. gif를 프레임으로 변환

Image[] getFrames(Image originalImg)
{
    int numberOfFrames = originalImg.GetFrameCount(FrameDimension.Time);
    Image[] frames = new Image[numberOfFrames];

    for (int i = 0; i < numberOfFrames; i++)
    {
        originalImg.SelectActiveFrame(FrameDimension.Time, i);
        frames[i] = ((Image)originalImg.Clone());
    }

    return frames;
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C # for 루프가 한 단계를 건너 뜁니다.

분류에서Dev

애니메이션을 반대로 실행하면 Android가 onDraw ()를 건너 뜁니다.

분류에서Dev

c 코드가 설명 할 수없이 줄을 건너 뜁니다.

분류에서Dev

조건자가있는 CoreData fetchRequest가 NULL 값을 잘못 건너 뜁니다.

분류에서Dev

Python, 함수가 조건을 건너 뜁니다.

분류에서Dev

PHP MYSQL Nested While 루프가 반복을 건너 뜁니다.

분류에서Dev

ARGV 루프가 Ruby의 if 문을 건너 뜁니다.

분류에서Dev

AsyncTask를 사용한 후에도 안무가 프레임을 건너 뜁니다 (최대 400!)

분류에서Dev

For 루프는 R 데이터 프레임의 행을 건너 뜁니다.

분류에서Dev

Java 메서드가 return 문을 건너 뜁니다.

분류에서Dev

C 기능을 건너 뜁니다.

분류에서Dev

Vim 이동 단어가 점을 건너 뜁니다.

분류에서Dev

생성 된 이미지가 픽셀을 건너 뜁니다.

분류에서Dev

생성 된 이미지가 픽셀을 건너 뜁니다.

분류에서Dev

'E'가있는 scanf는 내 전체 루프를 한 번 건너 뜁니다.

분류에서Dev

'E'가있는 scanf는 내 전체 루프를 한 번 건너 뜁니다.

분류에서Dev

Elasticsearch는 @ -symbol을 건너 뜁니다.

분류에서Dev

Python 작성자가 첫 번째 행을 건너 뜁니다.

분류에서Dev

Python : 재귀 생성기가 값을 건너 뜁니다.

분류에서Dev

코드가 Insert 문을 건너 뜁니다.

분류에서Dev

Elasticsearch 용어 집계가 일부 항목을 건너 뜁니다.

분류에서Dev

GDB의 브레이크가 레이블에서 줄을 건너 뜁니다.

분류에서Dev

오류가 발생하면 이메일 전송을 건너 뜁니다.

분류에서Dev

파이프에서 정수 읽기는 C의 값을 건너 뜁니다.

분류에서Dev

데이터 프레임 내 그룹에 순차적 카운터를 추가하지만 조건이 충족되면 증분을 건너 뜁니다.

분류에서Dev

주어진 시간 후에 스레드가있는 for 루프의 다음 인덱스로 건너 뜁니다.

분류에서Dev

JQuery 스피너가 첫 번째 클릭에서 0을 건너 뜁니다.

분류에서Dev

그룹의 Kafka 소비자가 파티션을 건너 뜁니다.

분류에서Dev

Google 스프레드 시트에 값이 추가 될 때까지 빈 셀을 건너 뜁니다.

Related 관련 기사

  1. 1

    C # for 루프가 한 단계를 건너 뜁니다.

  2. 2

    애니메이션을 반대로 실행하면 Android가 onDraw ()를 건너 뜁니다.

  3. 3

    c 코드가 설명 할 수없이 줄을 건너 뜁니다.

  4. 4

    조건자가있는 CoreData fetchRequest가 NULL 값을 잘못 건너 뜁니다.

  5. 5

    Python, 함수가 조건을 건너 뜁니다.

  6. 6

    PHP MYSQL Nested While 루프가 반복을 건너 뜁니다.

  7. 7

    ARGV 루프가 Ruby의 if 문을 건너 뜁니다.

  8. 8

    AsyncTask를 사용한 후에도 안무가 프레임을 건너 뜁니다 (최대 400!)

  9. 9

    For 루프는 R 데이터 프레임의 행을 건너 뜁니다.

  10. 10

    Java 메서드가 return 문을 건너 뜁니다.

  11. 11

    C 기능을 건너 뜁니다.

  12. 12

    Vim 이동 단어가 점을 건너 뜁니다.

  13. 13

    생성 된 이미지가 픽셀을 건너 뜁니다.

  14. 14

    생성 된 이미지가 픽셀을 건너 뜁니다.

  15. 15

    'E'가있는 scanf는 내 전체 루프를 한 번 건너 뜁니다.

  16. 16

    'E'가있는 scanf는 내 전체 루프를 한 번 건너 뜁니다.

  17. 17

    Elasticsearch는 @ -symbol을 건너 뜁니다.

  18. 18

    Python 작성자가 첫 번째 행을 건너 뜁니다.

  19. 19

    Python : 재귀 생성기가 값을 건너 뜁니다.

  20. 20

    코드가 Insert 문을 건너 뜁니다.

  21. 21

    Elasticsearch 용어 집계가 일부 항목을 건너 뜁니다.

  22. 22

    GDB의 브레이크가 레이블에서 줄을 건너 뜁니다.

  23. 23

    오류가 발생하면 이메일 전송을 건너 뜁니다.

  24. 24

    파이프에서 정수 읽기는 C의 값을 건너 뜁니다.

  25. 25

    데이터 프레임 내 그룹에 순차적 카운터를 추가하지만 조건이 충족되면 증분을 건너 뜁니다.

  26. 26

    주어진 시간 후에 스레드가있는 for 루프의 다음 인덱스로 건너 뜁니다.

  27. 27

    JQuery 스피너가 첫 번째 클릭에서 0을 건너 뜁니다.

  28. 28

    그룹의 Kafka 소비자가 파티션을 건너 뜁니다.

  29. 29

    Google 스프레드 시트에 값이 추가 될 때까지 빈 셀을 건너 뜁니다.

뜨겁다태그

보관