我试图拍摄大(巨大)图像(来自数码相机),并将它们转换成我可以在网络上显示的内容.这似乎很简单,也许应该是.但是,当我尝试使用PIL创建缩略图版本时,如果我的源图像高于它的宽度,则生成的图像旋转90度,使得源图像的顶部位于结果图像的左侧.如果源图像宽度高于高图像,则生成的图像是正确的(原始)方向.它可能与我发送的2元组大小有关吗?我正在使用缩略图,因为它似乎是为了保持纵横比.或者我只是完全失明,做一些愚蠢的事情?大小元组是1000,1000,因为我希望最长边缩小到1000像素,同时保持AR保持.
代码似乎很简单
img = Image.open(filename)
img.thumbnail((1000,1000), Image.ANTIALIAS)
img.save(output_fname, "JPEG")
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助.
假设我的图像是2322像素x 4128像素.如何缩放它以使宽度和高度都小于1028px?
我将无法使用Image.resize(https://pillow.readthedocs.io/en/latest/reference/Image.html#PIL.Image.Image.resize)因为这需要我给出新的宽度和高度.我打算做的是(下面的伪代码):
if (image.width or image.height) > 1028:
if image.width > image.height:
tn_image = image.scale(make width of image 1028)
# since the height is less than the width and I am scaling the image
# and making the width less than 1028px, the height will surely be
# less than 1028px
else: #image's height is greater than it's width
tn_image = image.scale(make height of image 1028)
Run Code Online (Sandbox Code Playgroud)
我猜我需要使用Image.thumbnail,但根据这个例子(http://pillow.readthedocs.org/en/latest/reference/Image.html#create-thumbnails)和这个答案(如何使用PIL调整图像大小并保持其宽高比?),提供宽度和高度以创建缩略图.是否有任何功能可以采用新的宽度或新的高度(不是两者)并缩放整个图像?
调整通过Django表单上传的图像文件的最简单方法是ImageField什么?
无论如何,PIL会调整到我给它的确切尺寸吗?或者,如果我给它类似的Image.ANTIALIAS论点,它会尝试保持纵横比吗?
我正在Django开发一个图像上传器.将图像上传并保存在磁盘上后,我正在尝试调整已保存图像的大小,同时保持其宽高比.我正在使用Pillow进行图像处理/调整大小.当我尝试调整图像大小时会出现问题,即使调整大小的图像的宽高比与原始图像的宽高比相同,也会出现像素化现象.
原始保存的图像:https: //www.dropbox.com/s/80yk6tnwt3xnoun/babu_980604.jpeg
调整大小的像素化图像:https: //www.dropbox.com/s/bznodpk4t4xlyqp/babu_736302.large.jpeg
我试过谷歌搜索这个问题,并检查了stackoverflow上的其他相关链接,
喜欢
但问题仍然存在.
版本:
Django的1.6.4 =
枕头= 2.4.0
一切都在virtualenv中设置.请帮忙!
PS:我是Python/Django世界的新手
这是我的代码片段:
import json
import os
import hashlib
from datetime import datetime
from operator import itemgetter
import random
from random import randint
from django.views.decorators.csrf import csrf_exempt, csrf_protect
from django.http import (HttpResponse, HttpResponseRedirect)
from django.core.context_processors import csrf
from django.core.files.images import get_image_dimensions
from django.shortcuts import render, redirect
from django.forms.models import model_to_dict
from django.views.decorators.csrf import csrf_exempt
from PIL import Image, ImageOps
from django.views.decorators.csrf …Run Code Online (Sandbox Code Playgroud) 我想创建一个Python脚本来调整图像大小,但不是通过添加白色背景来改变其比例
(因此,a:500*700像素图像将通过在每侧添加100 px的白色条带转换为700*700像素图像)
我使用的三种图像类型是.PNG,.JPG和.GIF.我甚至不确定Gifs,PNG和JPG是否可能已经很棒了.
就我而言,他们必须是正方形.但是如果你们中的任何人设法做到适应任何比例的话,那么看到这个帖子的人数最多就会受益,你会更加棒极了!
我看到了其他语言的相同线程但不是python,你们知道你是怎么做到的吗?
PS:我使用的是Python 3
我尝试了什么:
将3张图像组合在一起.
如果我们拍摄500*700像素图像:创建两个100*700像素的白色图像,并在图像的每一侧放置一个.灵感来自:
但是,我对python有点新意,我还没有成功.
我在我的表单中使用django-ckeditor了一些<textarea>并使用,widget=CKEditorUploadingWidget()以便我可以上传图像,这工作正常,但现在我需要将 1mb 设置为图像的大小限制。
我的第一个问题是如何限制大小?如果可能的话,我更喜欢在配置中配置限制django-ckeditor,这可能吗?或者我必须在服务器中进行。
我的第二个问题是,如果图像大于 1mb,我需要调整图像的大小,POST可能会将重量和高度减半,如果仍然大于 1mb,请重复该过程,直到大小小于 1mb,关键是用户只需选择图像,应用程序即可完成所有操作,用户无需自行调整图像大小。
我的最后一个问题是,如果我需要在客户端完成所有这些过程,有什么更好的方法,使用JQuery或Python使用Pillow并处理视图中的图像?
我真的失去了这个,任何帮助真的很感激。
我设法用 Python 和 CV2 库拍了一张照片,但我想改变图像的尺寸,得到一些质量不高的东西,然后把它缩小到 640。
我的代码是:
cam = VideoCapture(0) # 0 -> index of camera
s, img = cam.read()
if s: # frame captured without any errors
imwrite(filename,img) #save image
Run Code Online (Sandbox Code Playgroud)
我曾尝试使用该方法,set但它不起作用。