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

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

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

соврал я вам, используйте new Bitmap(int, int, Graphics.FromImage(...))
...
Рейтинг: 0 / 0
Обрезать картинку в C#
    #38063065
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОК, идея понятна.
...
Рейтинг: 0 / 0
Обрезать картинку в C#
    #38063174
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написал как-то так:
Код: 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
Обрезать картинку в C#
    #38063220
beg-in-er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Обрезать картинку в C#
    #38063919
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Однако, работает как надо. Спасибо.
...
Рейтинг: 0 / 0
Обрезать картинку в C#
    #38067450
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Захотелось сделать редактор для обрезания картинки вручную.
То есть, входишь в нужный режим, по бокам картинки появляются прямые линии, которые можно двигать мышей.
В конце работы изменения сохраняются.

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

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

Давай сюда свою строчку. Любопытно.
...
Рейтинг: 0 / 0
Обрезать картинку в C#
    #38067611
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Обрезать картинку в C#
    #38067761
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи,

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

Мне же теперь хочется мышью двигать границы фотки.
...
Рейтинг: 0 / 0
Обрезать картинку в C#
    #38067785
Фотография 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
Обрезать картинку в C#
    #38067788
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defragmentator,
вы что на табуретке программируете, что у вас неизвестные исключения лезут?
а причем тут границы фотки, да хоть задвигайтесь, в конечном итоге все сведется к одной строчке кода.
вы можете еще накидать кучу понтов и менющек, да и не забыть окно - о программе, ну и конечно сделать красивый инсталлер
с лицензионным соглашением, в принципе идея не плохая, она созвучна с ебу..й российской экономикой, в этом контексте должна смотреться не плохо..
...
Рейтинг: 0 / 0
Обрезать картинку в C#
    #38067799
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defragmentatorВпрочем, работает.
Кстати, похоже, jpg преобразует в bmp, что не очень хорошо.
При большом размере сохраняемого прямоугольника выдаёт исключение по нехватке памяти.
Имхо, работающий кусок кода, стабильно работающий для большой вырезаемой области картинки, уже приводили выше.
Будьте повнимательнее.
...
Рейтинг: 0 / 0
Обрезать картинку в C#
    #38067944
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defragmentatordefragmentatorВпрочем, работает.
Кстати, похоже, jpg преобразует в bmp, что не очень хорошо.
При большом размере сохраняемого прямоугольника выдаёт исключение по нехватке памяти.
Имхо, работающий кусок кода, стабильно работающий для большой вырезаемой области картинки, уже приводили выше.
Будьте повнимательнее.
вы какую имеете область вырезаемую ввиду, если ретангл не выходит за рамки базовой картинки ничего не происходит, если он выходит -то там сам бог велел нехватку
...
Рейтинг: 0 / 0
Обрезать картинку в C#
    #38068099
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи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
Обрезать картинку в C#
    #38068221
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defragmentator,
new Rectangle(20, 20, Img1.Width, Img1.Height-50)
ржу не могу
програмизд...
...
Рейтинг: 0 / 0
Обрезать картинку в C#
    #38068272
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиИ как вам такое - я вот создал редактор, из одной строчки кода
Тоже поржал от души.
...
Рейтинг: 0 / 0
Обрезать картинку в C#
    #38068304
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defragmentatorГде-то в степиИ как вам такое - я вот создал редактор, из одной строчки кода
Тоже поржал от души.
Смех без причины...
По вышей беде.
Возьмите милиметровку, вычертите на на ней квадрат картинки, и наложите на нее свой ретангл Rectangle(20, 20, Img1.Width, Img1.Height-50)
у которого ширина равняется ширине картинки со смещением 20 от левой стороны картинки, и посмотрите, выйдет ли он за рамки
картинки?
...
Рейтинг: 0 / 0
Обрезать картинку в C#
    #38068313
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи,

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

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


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