|
Программирование >> Автоматически обновляемые приложения
private void ForTnl Load (object sender, EventArgs e) { g = this.CreateGraphics0; y vert = this.Height; x horiz = this.Width - 300; timerl.Interval = 100; timerl.Start 0; f = new Font( Tahoma , 14, FontStyle.Bold, GraphicsUnit.Point), Примечание Пример находится в папке ScrollText на прилагаемом диске. g.Drawstring(scrollText, f. Brushes.Black, x horiz, y vert); if (x horiz <= -100) x horiz = this.Width; else { x horiz -= 5; else { g.Clear(this.BackColor) ; g.Drawstring(scrollText, f. Brushes.Black, x horiz, y vert); if (y vert <= (0 - 10) ) y vert = this.Height; else { y vert -= 5; \ Листинг 7.23. Работа с анимированной картинкой Путь к анимированной картинке Bitmap animatedlmage = new Bitmap(Application.StartupPath + \\ + anicat.gif ); bool currentlyAnimating = false; Метод для анимации public void Animatelmage() { if (currentlyAnimating) { ImageAnimator.Animate(animatedlmage, new EventHandler(this.OnFrameChanged) ) ; currentlyAnimating = true; private void OnFrameChanged(object o, EventArgs e) { Force a call to the Paint event handler, this.Invalidate(); protected override void OnPaint(PaintEventArgs e) { Начинаем анимацию AnimateImage(); Получим следующий кадр ImageAnimator.UpdateFrames() ; Вьшодим следующий кадр для анимации е.Graphics.Drawlmage(this.animatedlmage, new Point(0, 0)) ; Анимированные картинки .NET Framework поддерживает работу с анимированными картинками формата GIF. В частности, можно получить число кадров анимации или приостановить анимацию в любой момент. Пример приведен в листинге 7.23. private void button2 Click(object sender, EventArgs e) { Останавливаем анимацию ImageAnimator. StopAnimate (animatedlmage, new EventHandler(this.OnFrameChanged)); Примечание Пример работы с анимацией находится в папке Animate на прилагаемом диске. Как сохранить изображение из буфера обмена в файл Пользователи часто в своей практике используют операцию копирования изображения в буфер обмена с последующей вставкой из него. Рассмотрим 9 Зак 262 private void buttonl Click(object sender, EventArgs e) { if (ImageAnimator.CanAnimate(animatedlmage) == false) MessageBox.Show( Это не анимированная картинка ); else { Подсчитьшаем число фреймов в анимированной картинке Frame Dimension frameDim = new FrameDimension(animatedlmage.FrameDimensionsList[0]); int frameCount = animatedlmage.GetFrameCount(frameDim); MessageBox.Show( Картинка содержит: + frameCount + кадров ); Сохраняем фреймы в отдельные файлы BMP for (int 1=0; i < frameCount; i++) animatedlmage.SelectActiveFrame(frameDim, i) ; MemoryStream ms = new MemoryStream() ; animatedlmage. Save (ms, ImageFormat. Bmp) ; Image savelmg = Image.FromStream (ms); savelmg.Save(string.Format( anicat{0}.bmp , i));
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |