Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
 Аватар для Alex_Sabaka
638 / 499 / 77
Регистрация: 28.07.2010
Сообщений: 895
.NET 4.x

Exception "Недопустимый параметр" при вызове конструктора Bitmap(Image)

28.03.2012, 15:55. Показов 2705. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
        Image diff()
        {
            if (curr == null || prev == null) return null;
            Bitmap rszCurr = new Bitmap(curr, new Size(curr.Width / 25, curr.Height / 25));
            Bitmap rszPrev = new Bitmap(prev, new Size(prev.Width / 25, prev.Height / 25));
 
            return null;
        }
Весь код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        Image getScreenshot(float ratio)
        {
            Bitmap result = null;
            int w =Screen.PrimaryScreen.Bounds.Width;
            int h = Screen.PrimaryScreen.Bounds.Height;
            using (Bitmap tmpResult = new Bitmap(w, h))
            {
                using (Graphics gr = Graphics.FromImage(tmpResult))
                    gr.CopyFromScreen(Point.Empty, Point.Empty, Screen.PrimaryScreen.Bounds.Size);
                result = new Bitmap(tmpResult, new Size((int)(ratio * w), (int)(ratio * h)));
            }
            return result;
        }
 
        Image prev, curr;
 
        void upPrevCurr()
        {
            if (curr != null) prev = curr;
            curr = getScreenshot(0.65f);
        }
 
        Image diff()
        {
            if (curr == null || prev == null) return null;
            Bitmap rszCurr = new Bitmap(curr, new Size(curr.Width / 25, curr.Height / 25));
            Bitmap rszPrev = new Bitmap(prev, new Size(prev.Width / 25, prev.Height / 25));
 
            return null;
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (pictureBox1.Image != null)
            {
                pictureBox1.Image.Dispose();
                pictureBox1.Image = null;
            }
            upPrevCurr();
            diff();
            pictureBox1.Image = curr;
        }
    }

На 5 строчке вылетает
Exception "Недопустимый параметр"
Stack trace
Code
1
2
3
4
5
6
7
8
9
   в System.Drawing.Image.get_Width()
   в WatchOnChanges.Form1.diff() в E:\!!!\MY.APP\WatchOnChanges\WatchOnChanges\Form1.cs:строка 45
   в WatchOnChanges.Form1.timer1_Tick(Object sender, EventArgs e) в E:\!!!\MY.APP\WatchOnChanges\WatchOnChanges\Form1.cs:строка 58
   в System.Windows.Forms.Timer.OnTick(EventArgs e)
   в System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
   в System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   в System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   в System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   в System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext
Ни малейшего понятия не имею откуда взялся этот эксепшн. Как можно с этим бороться?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.03.2012, 15:55
Ответы с готовыми решениями:

Bitmap + Недопустимый параметр
Здравствуйте! Есть такой код. using System; using System.Collections.Generic; using System.Drawing; using...

Bitmap.FromStream() Недопустимый параметр
Выручайте, весь день мучаюсь с этой ерундой. using ICSharpCode.SharpZipLib.Zip; ZipFile zip = new ZipFile(FileName); ZipEntry...

Bitmap Недопустимый параметр (String filename)
Приветствую джентльмены. Снова у меня споры с господином Троелсеном очередной его пример код получился следующий using System; using...

5
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
28.03.2012, 15:57
Alex Sabaka, Да вообщем-то судя по всему проблема в свойстве curr.Width.
0
 Аватар для Alex_Sabaka
638 / 499 / 77
Регистрация: 28.07.2010
Сообщений: 895
28.03.2012, 16:16  [ТС]
Ну про curr.Width я и сам-то увидел, но вот вопрос: какого @#$%^???? Поменял єту строчку кода на такую
C#
1
Bitmap rszPrev = new Bitmap(prev, new Size(curr.Width / 25, curr.Height / 25));
Теперь мне выдает такой
Stack trace
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
   в System.Drawing.Image.get_RawFormat()
   в System.Drawing.Graphics.DrawImage(Image image, Int32 x, Int32 y, Int32 width, Int32 height)
   в System.Drawing.Bitmap..ctor(Image original, Int32 width, Int32 height)
   в System.Drawing.Bitmap..ctor(Image original, Size newSize)
   в WatchOnChanges.Form1.diff() в E:\!!!\MY.APP\WatchOnChanges\WatchOnChanges\Form1.cs:строка 45
   в WatchOnChanges.Form1.timer1_Tick(Object sender, EventArgs e) в E:\!!!\MY.APP\WatchOnChanges\WatchOnChanges\Form1.cs:строка 58
   в System.Windows.Forms.Timer.OnTick(EventArgs e)
   в System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
   в System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   в System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   в System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   в System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   в System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   в System.Windows.Forms.Application.Run(Form mainForm)
   в WatchOnChanges.Program.Main() в E:\!!!\MY.APP\WatchOnChanges\WatchOnChanges\Program.cs:строка 18
   в System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
   в System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   в System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   в System.Threading.ThreadHelper.ThreadStart()
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
28.03.2012, 16:28
Alex Sabaka, А prev точно является корректным объектом Image?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
28.03.2012, 16:53
Какие исходные размеры изображений curr и prev?
0
 Аватар для Alex_Sabaka
638 / 499 / 77
Регистрация: 28.07.2010
Сообщений: 895
28.03.2012, 21:11  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
Какие исходные размеры изображений curr и prev?
Одинаковые.

Цитата Сообщение от ForEveR Посмотреть сообщение
Alex Sabaka, А prev точно является корректным объектом Image?
Ну если curr корректен, то и prev должен быть корректен, ведь в строчке
C#
1
Bitmap rszCurr = new Bitmap(curr, new Size(curr.Width / 25, curr.Height / 25));
эксепшена нету.
Но если в ф-ции upPrevCurr заменить строчку
C#
1
if (curr != null) prev = curr;
на
C#
1
if (curr != null) prev = new Bitmap(curr);
то эксепшн будет уже здесь, стак трасе такой же как и в первом сообщении.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.03.2012, 21:11
Помогаю со студенческими работами здесь

Image.FromStream() - Недопустимый параметр
Полученные по TCP скриншоты не переводятся обратно в Image из byte. Размер отправленного и принятого массива одинаков. Некоторое...

Почему при вызове конструктора из конструктора нельзя передавать this как аргумент?
Есть такой код: public class Order { { } Order(){ this(this.hashCode());//ошибка тут } ...

Bitmap: System.ArgumentException "Недопустимый параметр."
Привет! Столкнулся с такой проблемой "System.ArgumentException", во время написания конвертера из изображения (.jpg) в текстовый файл...

почему компилятор упорно не хочет его жевать говоря: Недопустимый параметр.(строчка pic1 = new Bitmap("3641_09.jpg")
Доброго времени суток камрады, знаю, что это очень дебильный вопрос и это правильный код, но почему компилятор упорно не хочет его жевать...

Exception: "Недопустимый параметр"
Имеется следующий код: public Random Rnd_X = new Random(); public Random Rnd_Y = new Random(); public int X = 0; public...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru