I am trying to make a function that makes thumbnail of an image but I am unable to open the image file.
我正在尝试制作一个制作图像缩略图的功能,但我无法打开图像文件。
def create_thumbnail(request):
slug = 'yftguhjkn'
post = get_object_or_404(Post, slug=slug)
if post:
markdownify = import_string(MARKDOWNX_MARKDOWNIFY_FUNCTION)
content = BeautifulSoup(markdownify(post.content), "html5lib")
try:
img_link = content.findAll('img')[0].get('src')
print(img_link)
filename = img_link.split('/')[-1]
filename = filename.split('.')[0]
file_path = settings.MEDIA_URL + settings.DRACEDITOR_UPLOAD_PATH + post.author.username + '/' + filename + '.jpg'
print (file_path)
#im = Image.open(img_link)
im = Image.open(file_path)
print (im.size)
except:
img_link = 'http://howtorecordpodcasts.com/wp-content/uploads/2012/10/YouTube-Background-Pop-4.jpg'
return HttpResponse(img_link)
But it is going to except statement. Can someone please tell me how to fix it.
但除了声明之外,它将会发生。有人可以告诉我如何解决它。
def create_thumbnail(request):
slug = 'yftguhjkn'
post = get_object_or_404(Post, slug=slug)
if post:
markdownify = import_string(MARKDOWNX_MARKDOWNIFY_FUNCTION)
content = BeautifulSoup(markdownify(post.content), "html5lib")
#try:
img_link = content.findAll('img')[0].get('src')
print(img_link)
filename = img_link.split('/')[-1]
filename = filename.split('.')[0]
file_path = settings.MEDIA_URL + settings.DRACEDITOR_UPLOAD_PATH + post.author.username + '/' + filename + '.jpg'
print (file_path)
im = Image.open(file_path)
print (im.size)
#except:
#img_link = 'http://howtorecordpodcasts.com/wp-content/uploads/2012/10/YouTube-Background-Pop-4.jpg'
return HttpResponse(file_path)
1 个解决方案
#1
0
I think the Pillow need a correct path (full path) from the image to open.
我认为枕头需要从图像中打开正确的路径(完整路径)。
im = Image.open(file_path)
the commond output of settings.MEDIA_URL
is /media/
right? so, you need to file_path
is the full path, eg:
设置的commond输出.MEDIA_URL是/ media /对吗?所以,你需要file_path是完整的路径,例如:
/home/myuser/myenv/myproject/media/images/uploads/2017/05/29/foobar.png
If your settings.MEDIA_ROOT
is:
如果你的settings.MEDIA_ROOT是:
/home/myuser/myenv/myproject/media
You can doing with:
你可以这样做:
os.path.join(settings.MEDIA_ROOT, settings.DRACEDITOR_UPLOAD_PATH, image_name)
# example:
'/home/myuser/myenv/myproject/media' + 'images/uploads/2017/05/29/' + 'foobar.png'
you can also using BASE_DIR
for absolute dir.
你也可以使用BASE_DIR作为绝对目录。
#1
0
I think the Pillow need a correct path (full path) from the image to open.
我认为枕头需要从图像中打开正确的路径(完整路径)。
im = Image.open(file_path)
the commond output of settings.MEDIA_URL
is /media/
right? so, you need to file_path
is the full path, eg:
设置的commond输出.MEDIA_URL是/ media /对吗?所以,你需要file_path是完整的路径,例如:
/home/myuser/myenv/myproject/media/images/uploads/2017/05/29/foobar.png
If your settings.MEDIA_ROOT
is:
如果你的settings.MEDIA_ROOT是:
/home/myuser/myenv/myproject/media
You can doing with:
你可以这样做:
os.path.join(settings.MEDIA_ROOT, settings.DRACEDITOR_UPLOAD_PATH, image_name)
# example:
'/home/myuser/myenv/myproject/media' + 'images/uploads/2017/05/29/' + 'foobar.png'
you can also using BASE_DIR
for absolute dir.
你也可以使用BASE_DIR作为绝对目录。