2012-05-04 3 views
0

Я пытаюсь передать изображение, показывающее пользователю обратный отсчет. Для этого я использую отдельный поток, где я проверяю, когда должен запускаться таймер обратного отсчета, и когда это так, я рисую изображение каждые 6 секунд.Изображение низкого качества в метке

Что раздражает, когда я передаю обрамленное изображение в пользовательский интерфейс, качество изображения изменяется, и оно выглядит плохо для пользователя.

Это мой небольшой скрипт, который обрабатывает рисунки:

Try 
    remainingTime = (#12:04:00 AM# - (DateTime.Now - local_DateTimeclick)).ToString("HH:mm:ss") 
    remainingTimeInSeconds = Convert.ToDateTime(remainingTime).Minute * 60 + Convert.ToDateTime(remainingTime).Second 

    If remainingTimeInSeconds Mod 6 = 0 Then 
     g.ResetTransform() 
     g.TranslateTransform(52, 52) 
     g.RotateTransform(230 - remainingTimeInSeconds/6 * 9) 

     'g.CompositingQuality = Drawing2D.CompositingQuality.HighQuality 
     'g.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias 
     'g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic 
     'g.CompositingMode = Drawing2D.CompositingMode.SourceCopy 
     'g.PixelOffsetMode = Drawing2D.PixelOffsetMode. 

     g.DrawImage(Tick, 10, 10) 
    End If 

Catch 
    remainingTime = "Times Up" 
End Try 

В приведенном выше разделе - * local_DateTimeClick * переменная, которая устанавливается, когда отсчет следует начинать - Tick является Bitmap который представляет изображение, которое я должен рисовать за каждые 6 элипсовых секунд. - g - это графический объект из изображения, который я возвращаю в главное окно.

Также попытался сменить свойства g, но положительного эффекта не было.

У кого-нибудь есть идеи, что я могу сделать, чтобы это правильно работало, не изменяя качество возвращаемого изображения? Любые советы/советы приветствуются.

+0

Почему вы прокомментировали весь магический код, чтобы он выглядел высокого качества? –

+0

Потому что это не имеет значения. Качество изображения одинаково, если im использует «волшебный код» или нет. –

ответ

0

с точки зрения графического дизайнера в моей компании, я думаю, что вы должны обрезать свои изображения, чтобы они поместились в ярлыке:
1. он повышает производительность за счет экономии вычислительной мощности.
2. он выглядит лучше?!.
рассматривает

+0

Ну ... я ничего не меняю, поэтому думаю, что нет необходимости делать урожай. Но я буду искать некоторые советы для этого и попытаюсь. –

+0

Не получить никакого результата вообще ... –

4

Поскольку Drawing2D.SmoothingMode применяется только для методов 2D векторной графики, таких как Graphics.DrawEllipse и Graphics.DrawLine.

Это не влияет на рисование растровых изображений с помощью Graphics.DrawImage.

Из .NET documentation:

Режим сглаживания указывает, следует ли линии, кривые, и края областей, заполненных использовать сглаживание (называемый также сглаживание).

У вас есть два варианта на данный момент:

  1. Предварительно делают все возможные ориентации изображения, а затем просто отображать различные Image объекты на каждом тике
  2. использовать .NET vector drawing methods, чтобы сделать изображение вместо использования предварительно обработанного растрового изображения.

Не зная фактического изображения, которое вы трансформируете, я не могу сказать, что было бы более уместным.

Смежные вопросы