Написал скрипт для уменьшения изображения и наложения на него возядного знака.
На локальном компьютере работает нормально. У меня Python 2.7.5
На хостинге (jino.ru) фото получается с серой сеткой, не понимаю почему она берется.
На хостинге установлены 2 версии Python
$ python -V
Python 2.6.5
$ python2.7 -V
Python 2.7
Пробовал на других хостингах, на большинсктве такая же проблема. Но есть и хостинги, на которых мой скрипт преобразует изображения нормально, без сетки.
В чем может быть проблема?
Вот сам скрипт. Я вообще не Python-программист, поэтому за качество кода прошу не ругать.
Пытался написать этот же функционал на PHP, но он вообще нормально уменьшать фотки не умеет.
# Example
# python resize.py '/Users/elementfani/Downloads/q/1000x1000.jpg' '/Users/elementfani/Downloads/q/387x387.jpg' 387 387 95 '/Users/elementfani/Downloads/q/watermark_3.png'
import sys
from PIL import Image
#print sys.argv
filter = Image.ANTIALIAS #BILINEAR
imageFile = sys.argv[1]
thumbFile = sys.argv[2]
width = int(sys.argv[3])
height = int(sys.argv[4])
quality = int(sys.argv[5])
# Open image
image = Image.open(imageFile)
if image.mode != 'RGBA':
image = image.convert('RGBA')
# Resize image
image = image.resize((width, height), filter)
# If watermark exist
if len(sys.argv) == 7:
watermarkFile = sys.argv[6]
# Open watermark
watermark = Image.open(watermarkFile)
# Resize watermark
if image.size[0] != watermark.size[0] and image.size[1] != watermark.size[1]:
watermark = watermark.resize(image.size, filter)
# Add watermark
layer = Image.new('RGBA', image.size, (0, 0, 0, 0))
position = (image.size[0] - watermark.size[0], image.size[1] - watermark.size[1])
layer.paste(watermark, position)
Image.composite(layer, image, layer).save(thumbFile, quality=quality)
else:
#Resize and save image
image.save(thumbFile, quality=quality)





