Рубрика «изображения» - 5

image
В данной статье я опишу способ преобразования изображения bmp в матрицу, элементами которой будут значения цветов каждого пикселя.
Каждый пиксель bmp — изображения несет информацию о своем цвете из модели RGB ( цветовая модель изображения, которая состоит из трех компонентов R — red, G — green, B — blue ). Значение каждой компоненты RGB может быть в пределах 0… 255. Это дает возможность закодировать 255*255*255 цветов.
Значение цвета RGB удобнее хранить в hex формате ( шестнадцатерично ), где значение каждой компоненты находятся в пределах 00… FF. Комбинация 000000 — соответствует черному цвету, FFFFFF — белому.
Для начала работы откроем пространство имен Drawing:

   using System.Drawing ;

Создадим новый экземпляр класса Bitmap:

  Bitmap bmp = new Bitmap ( " c :  1.bmp " ) / / c :  1.bmp - адрес изображения

Для хранения значения цвета пикселя можно создать отдельную структуру, полями которой будут компоненты RGB, но я решил использовать класс Color из пространства имен Drawing. Для получения цвета используем метод GetPixel( x, y ), где x, y — координаты пикселя изображения. Если вы хотите использовать собственную структуру для хранения цвета, а не экземпляр класса Color, тогда для получения отдельной компоненты RGB можно использовать метод bmp.GetPixel(x, y).x, где x – R, G или B.

  Color[,] color = new Color[bmp.Width, bmp.Height];
  for (int y = 0; y < bmp.Height; y++)
       for (int x = 0; x < bmp.Width; x++)
       {
          color[x, y] = bmp.GetPixel(x, y); 
       }

Читать полностью »

Свободный движок WebKit теперь поддерживает srcset атрибут изображений, IMG элементов (официальная спецификация от W3C). Это позволяет вам, как разработчику, использовать картинки с высоким разрешением для пользователей использующих ретина-дисплей без ущерба для остальных пользователей. Также важно отметить о наличие изящного решения для браузеров, которые еще не поддерживают данный функционал.

Обратите внимание, в необходимости использовать последние ночные сборки WebKit.

imageЧитать полностью »

Как показывает практика — загрузка файлов (и в частности изображений) без надлежащего контроля приводит к образованию уязвимостей. В этой публикации рассмотрим практическую реализацию одного из вариантов безопасной загрузки изображений на сервер. Исходная постановка задачи предполагает возможность загрузки пользователем изображения на сервер и возможность дальнейшего его просмотра.

Для начала кратко основные шаги:
— производим отправку изображения с использованием XMLHttpRequest;
— проводим проверку загруженных данных на сервере на предмет «действительно ли это изображение»;
— проводим принудительное преобразование изображения в jpeg
Читать полностью »

Первые телевизионные изображения Земли с первого погодного искусственного спутника (53 года назад)

Да, сегодня явно день ретро-изображений. Все мы знаем уже, как наша планета выглядит из космоса, так сказать, снаружи. Но прежде ведь были только догадки, модели, и те же первые снимки поверхности Земли, сделанные из космоса, с орбиты, появились относительно недавно. Ну, а 53 года назад, 1-го апреля 1960 года, первый погодный искусственный спутник Земли передал в ЦУП первые телевизионные изображения нашей планеты. Этот спутник назывался TIROS-1.

Читать полностью »

Генератор абстракций (видеообзор)

Привет!
Не для широких масс, но для любителей программирования и графики решился я опубликовать сей пост.
image
Читать полностью »

Всем привет!

Я хотел бы поделиться своими наработками в вопросе выбора хостинга для хранения изображений. Статья написана, в первую очередь, для пользователей CMS Livestreet, хотя некоторые материалы вполне актуальны и для других CMS.

Что нужно?

Найти лучшее место хранения файлов изображений. Основные критерии выбора — цена, удобность администрирования, надежность.
Читать полностью »

В этой статье я хотел бы разобрать различные способы преобразования изображений с помощью Python. Для примеров я решил взять несколько наиболее известных. В статье не будет ничего сложного, она ориентированна в основном на новичков.
Картинка для испытаний:
Играемся с изображениями в Python

Подготовка

import random
from PIL import Image, ImageDraw #Подключим необходимые библиотеки. 

mode = int(input('mode:')) #Считываем номер преобразования. 
image = Image.open("temp.jpg") #Открываем изображение. 
draw = ImageDraw.Draw(image) #Создаем инструмент для рисования. 
width = image.size[0] #Определяем ширину. 
height = image.size[1] #Определяем высоту. 	
pix = image.load() #Выгружаем значения пикселей.

Оттенки серого

Для получения этого преобразования необходимо «усреднить» каждый пиксел.

if (mode == 0):
	for i in range(width):
		for j in range(height):
			a = pix[i, j][0]
			b = pix[i, j][1]
			c = pix[i, j][2]
			S = (a + b + c) // 3
			draw.point((i, j), (S, S, S))

Играемся с изображениями в Python

Читать полностью »

Многие уже наверняка сталкивались с проблемой OutOfMemoryError и находили достаточно толковый мануал Displaying Bitmaps Efficiently. Но если вы еще не успели изобрести свой велосипед на основе мануала, предлагаю свое готовое решение с объяснениями, которое умеет получать изображения:

  • Bitmap, byte[]
  • С сохранением пропорций
  • C обрезанием краев (crop) до заданного размера width x height
  • Учитывает EXIF orientation, чтобы изображение на выходе всегда было правильно повернуто

Читать полностью »

Сегодня на днях я написать небольшую библиотеку для вставки Canvas в изображения. Репозиторий можно найти здесь github.com/Alexei03a/u-content. Под катом я описал спецификацию данной библиотеки.

Читать полностью »

Наверное, почти каждый владелец сайта сталкивается с тем, что иногда на свой сайт необходимо залить какой-либо контент. И не очень долго думая, отправляется в ближайшую поисковую систему, чтобы найти необходимые материалы, будь то няшные котятки или чертеж редуктора. Конечно же, владелец сайта смутно подозревает, что это не очень правильно с его стороны, поэтому, для успокоения души, к себе на хостинг картинки не заливает, а использует оригиналы с сайтов, где он их одолжил стырил взял.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js