Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с изображением 
:(
    Опции темы
Whitebrain
  Дата 4.4.2011, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 13.4.2010

Репутация: нет
Всего: нет



В PictureBox грузится около 6 картинок ,и с некой периодичностью загружаются новые картинки,потом исчезают.
Вопрос в следующем 
1)как лучше сделать ,чего читать, куда смотреть 
2)прозрачность задника картинок  
Заранее спасибо. smile 
PM MAIL   Вверх
-Mikle-
Дата 6.4.2011, 07:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59



Я не понял задачу. Поясни, что значит 6 картинок в один пикчебокс? Может просто 6 картинок должны нарисоваться? В общем, поясни.


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
Whitebrain
Дата 6.4.2011, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 13.4.2010

Репутация: нет
Всего: нет



Например у меня в центре  picturebox квадрат ,а вокруг должно быть 3 кружка,и квадрат и кружок хранятся в виде картинок в двух   файлах .bmp.
Тоесть в picturebox должно находится  4 изображения .



Это сообщение отредактировал(а) Whitebrain - 6.4.2011, 11:47
PM MAIL   Вверх
Whitebrain
Дата 6.4.2011, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 13.4.2010

Репутация: нет
Всего: нет



Вот сделал с 3 изображениями,есть ли какой более оптимизированный метод?
Код

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public static Bitmap CombineImages(Image image1, Image image2,Image image3, int width, int height)
        {
            Bitmap result = new Bitmap(width, height);
            using (Graphics graphics = Graphics.FromImage(result))
            {
                //set the resize quality modes to high quality
                graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
                graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                //draw the images into the target bitmap
                graphics.DrawImage(image1,80,50, result.Width-140, result.Height-140);
                graphics.DrawImage(image3, 110, 30, result.Width - 160, result.Height - 160);
                graphics.DrawImage(image2, 0, 0, result.Width-140, result.Height-140);
            }
            return result;
        }
        private void Form1_Load(object sender, EventArgs e)
        {
         
            Bitmap bmp = new Bitmap(@"D:\betaimjpg\black.jpg");
          bmp.MakeTransparent(Color.White);
            Bitmap btm = new Bitmap(@"D:\betaimjpg\virus.jpg");
            Bitmap thinking = new Bitmap(@"D:\betaimjpg\thinking.png");
            btm.MakeTransparent(); thinking.MakeTransparent();
            pictureBox1.Image = CombineImages(bmp, btm, thinking, 200, 200);
        }
    }
}


PM MAIL   Вверх
-Mikle-
Дата 6.4.2011, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59



Русуй точно таким же способом, только сразу на графиксе любого окна, а не в картинку... Забудь про пикчебокс, рисовать можно в любом контроле (например Panel).



--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
Whitebrain
Дата 6.4.2011, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 13.4.2010

Репутация: нет
Всего: нет



panel.Image и понеслось?
еще вопрос ,у png задний слой прозрачный,верно?
и еще как дела с гифками обстоят,их точно также можно?
PM MAIL   Вверх
-Mikle-
Дата 6.4.2011, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59



Цитата(Whitebrain @  6.4.2011,  16:46 Найти цитируемый пост)
panel.Image и понеслось?

Нет, событие panel.Paint и вперед...

Цитата(Whitebrain @  6.4.2011,  16:46 Найти цитируемый пост)
у png задний слой прозрачный,верно

У него нет заднего слоя. Просто каждый пиксель, помимо цвета, несет информацию об уровне прозрачности от 0 до 255.

Цитата(Whitebrain @  6.4.2011,  16:46 Найти цитируемый пост)
и еще как дела с гифками обстоят,их точно также можно

С гифками придется немного постараться. Есть класс аниматора, но я с ним дела не имел. А вообще, к сведению, формат GIF давно стал платным и его использование должно быть лицензированным кажется.


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
Whitebrain
Дата 6.4.2011, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 13.4.2010

Репутация: нет
Всего: нет



хорошо,тогда еще пару вопросов ,ресайз изображения делать как?евент по изменению размера getwidth ,ну а размер менять ?
и еще как очищать изображение?

PM MAIL   Вверх
-Mikle-
Дата 6.4.2011, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59



Цитата(Whitebrain @  6.4.2011,  19:31 Найти цитируемый пост)
ресайз изображения делать как?

Можно перед рисованием масштаб у графикса задавать, а можно вручную расчитывать.

Но если будешь увеличивать, то я сомневаюсь, что будет нормально, потому что битмап он и в африке битмап, при увеличении качество будет только ухудшаться.


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0510 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.