Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Обрезать картинку в C# / 25 сообщений из 26, страница 1 из 2
03.12.2012, 12:15
    #38062384
defragmentator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
Добрый день!
Получаю фото из БД, но в нижней части фото белый подвал (так отсканировали, видимо). Хочется убрать подвал.
Фото в формате JPEG. В памяти хранится в виде массива байтов. Пробовал "обрезать" массив, но получилось, что в подвале на экране теперь серый фон.
Видимо, длина JPEG хранится где-то в заголовке. Как правильно "обрезать" фото?
...
Рейтинг: 0 / 0
03.12.2012, 15:07
    #38062701
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
defragmentator,

Image.GetThumbnailImage
...
Рейтинг: 0 / 0
03.12.2012, 15:29
    #38062749
defragmentator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
pation,

немного не понял идею "эскиза"
...
Рейтинг: 0 / 0
03.12.2012, 16:21
    #38062872
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
defragmentator,

соврал я вам, используйте new Bitmap(int, int, Graphics.FromImage(...))
...
Рейтинг: 0 / 0
03.12.2012, 17:38
    #38063065
defragmentator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
ОК, идея понятна.
...
Рейтинг: 0 / 0
03.12.2012, 18:16
    #38063174
defragmentator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
Написал как-то так:
Код: c#
1.
2.
3.
4.
5.
6.
            using (Bitmap bmp1 = new Bitmap(Image1))
            {
                Rectangle rect = new Rectangle(5, 27, Image1.Width, Image1.Height-50);
                Bitmap bmpCrop = bmp1.Clone(rect, bmp1.PixelFormat); // недостаточно памяти
                Image1 = bmpCrop;
            }


Однако, на строчке Bitmap bmpCrop = bmp1.Clone(rect, bmp1.PixelFormat); выдаёт ошибку "Недостаточно памяти".
...
Рейтинг: 0 / 0
03.12.2012, 18:41
    #38063220
beg-in-er
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
defragmentator,
как то так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
Bitmap ResizeBMP(string source, int sizex, int sizey)
        {
            Bitmap sourse_bmp = new Bitmap(source);
            Bitmap destination_bmp = new Bitmap(sizex, sizey);
            Graphics g = Graphics.FromImage(destination_bmp);
            g.DrawImage(sourse_bmp, new Rectangle(0, 0, sizex, sizey), 0, 0, sizex, sizey, GraphicsUnit.Pixel);
            //destination_bmp.Save("result.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
            return destination_bmp;
        }
...
Рейтинг: 0 / 0
04.12.2012, 11:10
    #38063919
defragmentator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
Однако, работает как надо. Спасибо.
...
Рейтинг: 0 / 0
06.12.2012, 10:47
    #38067450
defragmentator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
Захотелось сделать редактор для обрезания картинки вручную.
То есть, входишь в нужный режим, по бокам картинки появляются прямые линии, которые можно двигать мышей.
В конце работы изменения сохраняются.

Конечно, самому можно всё накопать, но боюсь сделать коряво.
Есть какие стандартные наработки по этому поводу?
...
Рейтинг: 0 / 0
06.12.2012, 10:49
    #38067457
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
defragmentator,
вы будете смеяться, но етог г... на джаваскипте как грязи...
...
Рейтинг: 0 / 0
06.12.2012, 10:59
    #38067477
defragmentator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
Где-то в степи,
охотно верю.

Но js как-то далёк от C#.
...
Рейтинг: 0 / 0
06.12.2012, 11:03
    #38067483
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
defragmentator,
но если с этим разобрались на клиенте, то какой смысл это делать на диезе, тем более там кода то одна, повторяю, одна строчка
я даже не смотрел код под катом, лень было, на такую чепуху время тратить, тем более у любого подсанчика по рукой есть фотошоп
или что полегче.
И как вам такое - я вот создал редактор, из одной строчки кода ( пожму плечами и пойду дальше)
...
Рейтинг: 0 / 0
06.12.2012, 11:19
    #38067516
defragmentator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
Где-то в степи,

Давай сюда свою строчку. Любопытно.
...
Рейтинг: 0 / 0
06.12.2012, 11:59
    #38067611
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
defragmentator,
Код: c#
1.
 new Bitmap(Image.FromFile("c:/babla1/jpg")).Clone(new Rectangle(20, 20, 100, 100), PixelFormat.Undefined).Save("c:/babla2/jpg");
...
Рейтинг: 0 / 0
06.12.2012, 12:43
    #38067761
defragmentator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
Где-то в степи,

немного не работает, выдаёт неизвестное исключение на C#. Но суть не в этом.
Тут просто, на первый взгляд, идёт обрезка прямоугольником. А это уже реализовано - см. выше.

Мне же теперь хочется мышью двигать границы фотки.
...
Рейтинг: 0 / 0
06.12.2012, 12:52
    #38067785
defragmentator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
Где-то в степи
Код: c#
1.
 new Bitmap(Image.FromFile("c:/babla1/jpg")).Clone(new Rectangle(20, 20, 100, 100), PixelFormat.Undefined).Save("c:/babla2/jpg");



Впрочем, работает. Я ошибся, надо обязательно сохранять в другой файл, не в первоначальный.
Но это просто обрезка прямоугольником.
...
Рейтинг: 0 / 0
06.12.2012, 12:54
    #38067788
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
defragmentator,
вы что на табуретке программируете, что у вас неизвестные исключения лезут?
а причем тут границы фотки, да хоть задвигайтесь, в конечном итоге все сведется к одной строчке кода.
вы можете еще накидать кучу понтов и менющек, да и не забыть окно - о программе, ну и конечно сделать красивый инсталлер
с лицензионным соглашением, в принципе идея не плохая, она созвучна с ебу..й российской экономикой, в этом контексте должна смотреться не плохо..
...
Рейтинг: 0 / 0
06.12.2012, 12:57
    #38067799
defragmentator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
defragmentatorВпрочем, работает.
Кстати, похоже, jpg преобразует в bmp, что не очень хорошо.
При большом размере сохраняемого прямоугольника выдаёт исключение по нехватке памяти.
Имхо, работающий кусок кода, стабильно работающий для большой вырезаемой области картинки, уже приводили выше.
Будьте повнимательнее.
...
Рейтинг: 0 / 0
06.12.2012, 14:00
    #38067944
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
defragmentatordefragmentatorВпрочем, работает.
Кстати, похоже, jpg преобразует в bmp, что не очень хорошо.
При большом размере сохраняемого прямоугольника выдаёт исключение по нехватке памяти.
Имхо, работающий кусок кода, стабильно работающий для большой вырезаемой области картинки, уже приводили выше.
Будьте повнимательнее.
вы какую имеете область вырезаемую ввиду, если ретангл не выходит за рамки базовой картинки ничего не происходит, если он выходит -то там сам бог велел нехватку
...
Рейтинг: 0 / 0
06.12.2012, 15:15
    #38068099
defragmentator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
Где-то в степиdefragmentatorпропущено...

Кстати, похоже, jpg преобразует в bmp, что не очень хорошо.
При большом размере сохраняемого прямоугольника выдаёт исключение по нехватке памяти.
Имхо, работающий кусок кода, стабильно работающий для большой вырезаемой области картинки, уже приводили выше.
Будьте повнимательнее.
вы какую имеете область вырезаемую ввиду, если ретангл не выходит за рамки базовой картинки ничего не происходит, если он выходит -то там сам бог велел нехватку

Да хотя бы так (возьмите полноразмерную фотку, на весь экран):
Код: c#
1.
2.
Image Img1 = Image.FromFile("PersonalPhoto.JPEG");
new Bitmap(Img1).Clone(new Rectangle(20, 20, Img1.Width, Img1.Height-50), System.Drawing.Imaging.PixelFormat.Undefined).Save("PersonalPhoto2.JPEG");
...
Рейтинг: 0 / 0
06.12.2012, 16:16
    #38068221
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
defragmentator,
new Rectangle(20, 20, Img1.Width, Img1.Height-50)
ржу не могу
програмизд...
...
Рейтинг: 0 / 0
06.12.2012, 16:35
    #38068272
defragmentator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
Где-то в степиИ как вам такое - я вот создал редактор, из одной строчки кода
Тоже поржал от души.
...
Рейтинг: 0 / 0
06.12.2012, 16:50
    #38068304
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
defragmentatorГде-то в степиИ как вам такое - я вот создал редактор, из одной строчки кода
Тоже поржал от души.
Смех без причины...
По вышей беде.
Возьмите милиметровку, вычертите на на ней квадрат картинки, и наложите на нее свой ретангл Rectangle(20, 20, Img1.Width, Img1.Height-50)
у которого ширина равняется ширине картинки со смещением 20 от левой стороны картинки, и посмотрите, выйдет ли он за рамки
картинки?
...
Рейтинг: 0 / 0
06.12.2012, 16:53
    #38068313
defragmentator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
Где-то в степи,

не буду Ваш бред разбирать, надоело уже.
...
Рейтинг: 0 / 0
06.12.2012, 16:55
    #38068322
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать картинку в C#
defragmentatorГде-то в степи,

не буду Ваш бред разбирать, надоело уже.
это у вас бред, два дня епете мозги людям проблемой из пальца, потом решили их этого фака редактор сделать.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Обрезать картинку в C# / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]