Ответы пользователя по тегу NumPy
  • Как установить pandas (и numpy) в проекте Django с виртуальной средой?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    VC 6.0 is not supported by this module
    [end of output]

    Посмотрите, какую версию Visual C надо для сборки. В принципе, попробуйте максимально свежую, какая там - 12?
    Ответ написан
  • Как увеличить изображение x*2 и y*2 без интерполяции?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Не бейте, пожалуйста. Вот стырил исходный код с habra и накарябал как смог:
    spoiler
    from PIL import Image, ImageDraw  # Подключим необходимые библиотеки.
    
    image = Image.open("temp.jpg")  # Открываем изображение.
    width = image.size[0]  # Определяем исходную ширину.
    height = image.size[1]  # Определяем исходную высоту.
    pix = image.load()  # Выгружаем значения пикселей исходной картинки.
    
    imagemode = image.mode  # Получаем цветовой формат исходного изображения
    multiplicator = 2  # тут множитель, по-умолчанию 2
    newwidth = width * multiplicator  # вычисляем новую высоту
    newheight = height * multiplicator  # вычисляем новую ширину
    newimage = Image.new(mode=imagemode, size=(newwidth, newheight))  # создаем новую картинку
    newpix = newimage.load()  # загружаем новую картинку попиксельно
    draw = ImageDraw.Draw(newimage)  # создаем инструмент рисования
    
    if __name__ == '__main__':
        new_image_list = []  # создаем пустой массив строк нового изображения
        for i in range(width):
            new_line_list = []  # создаем пустой массив очередной новой строки
            for j in range(height):  # получаем цветность очередного пикселя исходной картинки
                newpixel = pix[i, j]
                for _ in range(multiplicator):  # лепим в конец массива новой строки нужное кол-во таких пикселей
                    new_line_list.append(newpixel)
            for _ in range(multiplicator):  # лепим в конец массива строк нужное кол-во вновь созданных строк
                new_image_list.append(new_line_list)
    
        for i in range(newwidth):  # рисуем построчно попиксельно новую картинку из массива строк нового изображения
            for j in range(newheight):
                pixel = tuple(new_image_list[i][j])
                draw.point((i, j), pixel)
    
    newimage.save("ans.bmp", "BMP")  # записываем всё это в файл (выбрал bitmap потому, что там явно получаются пиксели
    # как заказано, без дальнейшей оптимизации форматом jpg
    del draw
    image.close()
    newimage.close()


    Наверняка это можно было сделать гораздо красивее и оптимальнее, и быстрее в N раз. Но уж "чем удобряли, то и выросло"...
    Ответ написан
    Комментировать