Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
1 / 1 / 2
Регистрация: 12.06.2013
Сообщений: 34

Отражение изображения во все стороны

12.12.2015, 20:57. Показов 3431. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Возникла проблема, не могу понять как такое реализовать (картинка в приложении вариант д).
Иммем картинку как в варианте а, создаем битмап размерами большими чем изображение, помещаем оригинал в центр этого битмапа, остальные пиксели заполняем путем отражения изначальной картинки.
Пробовал просто отражать циклом, но тогда что делать на краях нового изображения, откуда брать те значения?
Не могу найти сам алгоритм по которому это можно сделать, если кто подскажет - буду благодарен!
Размер нового битмапа, может превышать картинку на динамическое кол-во пикселей.
Т.е если картинка 200х200, то мы можем получить и картинку 203х203 и 221х221 например. Алгоритм должен работать не зависимо от нужного кол-во дополнительных пикселей.
П.с как вариант сувать картинку в центр и делать отражение во все стороны, а потом обрезать до нужного, но если изображение будет большое, то это будет занимать кучу времени.
Спасибо.
Миниатюры
Отражение изображения во все стороны  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.12.2015, 20:57
Ответы с готовыми решениями:

Определите длину стороны квадратного зеркала, чтобы отражение помещалось в зеркале
У царицы Несмеяны круглое лицо, радиус которого равен R. Определите длину стороны такого квадратного зеркала, чтобы, когда Несмеяна...

Доделать программу, чтобы при нажатии на стрелочки картинка и ее отражение уезжало в разные стороны
Надо что-бы при нажатии на стрелочки на клавиатуре картинка и ее отражение уезжало в разные стороны. program upr8_4_a; uses...

Отражение изображения
есть ли в компонентне Image функция отражения картинки, если нет, то как можно это сделать???

1
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
12.12.2015, 22:40
Лучший ответ Сообщение было отмечено vlad00777 как решение

Решение

vlad00777,
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
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Net;
using System.Windows.Forms;
 
namespace WindowsFormsApplication324
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
            var img = Image.FromStream(new WebClient { Proxy = null }.OpenRead("https://pbs.twimg.com/profile_images/629570746285604864/li721BrU.jpg"));
 
            var result = Expand(img, 150);
            BackgroundImage = result;
            BackgroundImageLayout = ImageLayout.Center;
            result.Save("c:\\temp.png");
        }
 
        private Bitmap Expand(Image img, int shift)
        {
            var bmp = new Bitmap(img.Width + shift * 2, img.Height + shift * 2);
            using(var gr = Graphics.FromImage(bmp))
            {
                gr.DrawImage(img, shift, shift);
                gr.ScaleTransform(-1, 1);
                gr.DrawImage(img, -shift, shift);
                gr.DrawImage(img, -2 * img.Width - shift, shift);
                gr.ScaleTransform(1, -1);
                gr.DrawImage(img, -shift, -shift);
                gr.DrawImage(img, -2 * img.Width - shift, -shift);
                gr.ScaleTransform(-1, 1);
                gr.DrawImage(img, shift, -shift);
                gr.DrawImage(img, shift, -2 * img.Height - shift);
                gr.ScaleTransform(-1, 1);
                gr.DrawImage(img, -shift, -2 * img.Height - shift);
                gr.DrawImage(img, -2 * img.Width - shift, -2 * img.Height - shift);
            }
 
            return bmp;
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.12.2015, 22:40
Помогаю со студенческими работами здесь

Копирование и отражение изображения
Здравствуйте, у меня есть изображение, добавляемое через QPixmap. Как мне скопировать часть этого изображения, отразить эту часть по...

Вычислить для треугольника все стороны, все углы, периметр и площадь
Вычислить для треугольника ABC все стороны, все углы (в градусной мере), периметр и площадь, если известны: стороны AC, BC и угол ABC. ...

Вычислить для треугольника ABC все стороны, все углы, периметр и площадь
1)Вычислить для треугольника ABC все стороны, все углы (в градусной мере), периметр и площадь, если известны: стороны AC, BC и угол BAC. ...

Вычислить для треугольника ABC все стороны, все углы (в градусной мере)
Вычислить для треугольника ABC все стороны, все углы (в градусной мере), периметр и площадь, если известны: сторона AC и углы ACB, ABC. ...

Вычислить для треугольника ABC все стороны, все углы, периметр и площадь
Задание 3. Вычислить для треугольника ABC все стороны, все углы (в градусной мере), периметр и площадь, если известны: сторона BC и углы...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru