Программирование >>  Автоматически обновляемые приложения 

1 ... 76 77 78 [ 79 ] 80 81 82 ... 170


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));



1 ... 76 77 78 [ 79 ] 80 81 82 ... 170

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика