Метка «изображения» - 2

В этой статье я хотел бы разобрать различные способы преобразования изображений с помощью 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. Под катом я описал спецификацию данной библиотеки.

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

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

Сегодня в клубе Яндекс.Субботник появилось интересное видео о том, как Яндекс обрабатывает изображения для исключения дубликатов. Рассказывает Александр Крайнов: он с 2000 года занимается проектами, связанными с обработкой медиаданных. В Яндексе отвечает за проекты, в которых задействовано компьютерное «зрение».

О докладе

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

Думаю, многие не следят за этим клубом и мне кажется, что после этого видео есть над чем поразмыслить.
Всем кому интересно — прошу под кат.
Читать полностью »

Jeta.me — любимые картинки в одном месте. Бесплатный аггрегатор изображений

Здесь в Sliday.com мы наконец-то, спустя несколько месяцев разработок подошли к тому моменту, когда тайное становится явным.

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

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

В Visual C++ нет нормального стандартного способа отображения произвольных изображений на форме. Конечно, можно воспользоваться Picture Control, но изображение в нем можно установить только из ресурсов (насколько я помню), отсутствует возможность масштабирования, и нет поддержки скролбаров, если изображение выходит за границы контрола. Эти задачи и были реализованы в Image Control (часть кода была заимствована из другого контрола, но к сожалению источник уже затерялся, так как делал я это давно).

Называется класс CImageViewer, и наследуется он от CWnd. Изображение, отображаемое в контроле, хранится в члене класса m_image с типом CImage. Это позволит нам отображать изображения большинства популярных форматов. Основные методы класса:

— Установка изображения: void SetImage(CImage *image);
— Увеличить: void ZoomIn();
— Уменьшить: void ZoomOut();

Остальные методы и члена класса являются служебными.Читать полностью »

Сейчас сразу несколько крупных интернет-сервисов решили обновить собственный интерфейс. Так, совсем недавно обновился Twitter, а сейчас о намерении измениться заявлено и со стороны сервиса Flickr. Сервис является одним из наиболее популярных фотохостингов на текущий момент, и его руководство собирается привлечь еще больше пользователей, одновременно удерживая старую базу «клиентов.

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


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