models.py:
class UserProfile(models.Model):
photo = models.ImageField(upload_to = get_upload_file_name,
storage = OverwriteStorage(),
default = os.path.join(settings.STATIC_ROOT,'images','generic_profile_photo.jpg'),
height_field = 'photo_height',
width_field = 'photo_width')
photo_height = models.PositiveIntegerField(blank = True, default = 0)
photo_width = models.PositiveIntegerField(blank = True, default = 0)
Run Code Online (Sandbox Code Playgroud)
views.py:
def EditProfile(request):
register_generator()
source_file = UserProfile.objects.get(user = request.user).photo
args = {}
args.update(csrf(request))
args.update({'source_file' : source_file})
Run Code Online (Sandbox Code Playgroud)
在我的模板中的某个地方:
{% generateimage 'user_profile:thumbnail' source=source_file %}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:UserProfile匹配查询不存在.
在这一行:
source_file = UserProfile.objects.get(user = request.user).photo
Run Code Online (Sandbox Code Playgroud)
问题是ImageField的默认属性不起作用.因此,对象不是在我的模型中创建的.如何正确使用此属性?如果我省略此属性,则创建对象时没有错误.我需要通过绝对路径还是相对路径?我使用django-imagekit在显示之前调整图像大小:http://django-imagekit.readthedocs.org/en/latest/
我有一个缩略图过滤器,当图像高于宽度时,总是最终将图像向左旋转90度(我检查过,原始图像是直的,而缓存的图像是旋转的).相关代码如下所示:
profile_image = models.ImageField(upload_to='profile_images', default='profile_images/icon.png')
profile_icon = ImageSpecField(source='profile_image',
processors=[processors.Thumbnail(width=72, height=72, crop=True)],
format='JPEG',
options={'quality': 60})
Run Code Online (Sandbox Code Playgroud)
如何停止自动旋转?
我一直在阅读和尝试Django的各种缩略图应用程序.这些是要求:
所有生成的缩略图必须保存在与原始图像分开的S3存储桶中,即单独的存储类
删除图像实例时,还必须删除原始图像文件以及所有生成的缩略图
最大限度地减少昂贵的低效率,例如 获取缩略图的URL以在DRF中序列化不应该在S3存储桶中查看它是否每次都存在,等等.
VersatileImageField未能满足第一个要求.ImageKit未能满足第二个要求.第三个要求是我最困惑的地方; 我试图告诉自己最佳实践,但信息是分散的,我没有信心根据我迄今学到的知识做出决定.
根据我的阅读,我的印象是最有效的行为如下:
我最感兴趣的学习那么简单,缩略图和SORL-缩略图取(如果它们与过程对准我非常简要地高于或如果他们有一些更有效的概述)在方法上的差异,人和的优势/劣势在他们的每个方法中.
我已经搜索了很多,但没有运气找到确切的答案.
我想在admin的编辑表单中使用django-ajax-uploader.
我有一个带有图像区域的模型.在管理员方面,我排除该字段并通过jquery将ajax-uploader插入管理表单.这是因为一旦通过ajax-uploader上传的图像,裁剪调整大小视口变为活动状态,更新裁剪和调整数字字段...将与imagekit一起使用.
现在提交表单时,django无法访问文件对象.
有没有人对此有意见?
我们刚刚实施了一项功能,我们的用户可以上传照片.我们正在重新调整用户上传到缩略图和800x600"显示"尺寸的大小.
我们遇到的问题是这个操作似乎占用了我们服务器上的大量内存.我们正在使用Django-imagekit来执行此操作,并且似乎存在过多内存使用的文档问题.
我们在Heroku服务器上运行django.如果这个因素存在,我们也使用postgresql进行数据搜索和弹性搜索.
非常感谢!
python django image-processing image-resizing django-imagekit
如何使用PIL或Pillow更改图像的饱和度?我希望能够将该解决方案与django-imagekit包一起使用.我需要更改饱和度的原因是创建一种效果,当用户悬停黑白图像时,它会变为彩色.
python image imagekit python-imaging-library django-imagekit
我正在使用Pillow,Django和django-imagekit.
我希望能够有一个个人资料图片模型字段(可能使用ProcessedImageField来自imagekit 的类),它将获取任何图像,转换为JPEG,将其裁剪为150x150,并使其文件大小为5KB.
前两个很容易:
profile_picture = imagekit.models.ProcessedImageField(upload_to=get_profile_picture_file_path,
format='JPEG',
processors=[ResizeToFill(height=150, width=150)]
)
Run Code Online (Sandbox Code Playgroud)
但是如何确保文件大小为5KB?我可以使用类似options={'quality': 60}参数的东西ProcessedImageField,但这似乎只相对于原始文件大小(据我所知).
解决方案不必使用django-imagekit,但这是首选.
在我的模型中,我想通过覆盖保存方法来格式化图像字段
我在我的模型中做到了这一点
from PIL import Image as Img
from io import StringIO
from django.core.files.uploadedfile import InMemoryUploadedFile
class Blog(models.Model):
Blog_image= models.ImageField(upload_to="...", blank=True)
def save(self, *args, **kwargs):
if self.Blog_image:
image = Img.open(StringIO.StringIO(self.Blog_image.read()))
image.thumbnail((900,300), Img.ANTIALIAS)
output = StringIO.StringIO()
image.save(output, format='JPEG', quality=150)
output.seek(0)
self.Blog_image = InMemoryUploadedFile(output,'ImageField', "%s.jpg" %self.Blog_image.name, 'image/jpeg', output.len, None)
super(Blog, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
但是得到这个属性错误
AttributeError : type object '_io.StringIO' has no attribute 'StringIO'
Run Code Online (Sandbox Code Playgroud)
谁能解释我为什么会收到这个错误???
我的python版本是3.6.4
我的 Django 版本是 2.0.7
我想将photologue与我的Django应用程序集成,并用它来显示车辆库存中的照片...有点像Boost Motor Group Inc.提供的内容.我已经集成了应用程序,所以下一步我正在尝试弄清楚如何将其连接到我的车辆模型以及如何显示照片.我的车型看起来像BTW
class Vehicle(models.Model):
stock_number = models.CharField(max_length=6, blank=False)
vin = models.CharField(max_length=17, blank=False)
common_vehicle = models.ForeignKey(CommonVehicle)
exterior_colour = models.ForeignKey(ExteriorColour)
interior_colour = models.ForeignKey(InteriorColour)
interior_type = models.ForeignKey(InteriorType)
odometer_unit = models.ForeignKey(OdometerUnit)
status = models.ForeignKey(Status)
odometer_reading = models.PositiveIntegerField()
selling_price = models.PositiveIntegerField()
purchase_date = models.DateField()
sales_description = models.CharField(max_length=60, blank=False)
feature_sets = models.ManyToManyField(FeatureSet, blank=True)
features = models.ManyToManyField(Feature, blank=True)
def __unicode__(self):
return self.stock_number
Run Code Online (Sandbox Code Playgroud) 我正在使用django-imagekit来调整我的用户头像,并且现在显示默认头像(如果用户没有上传他/她的头像)我这样做:
views.py
try:
usr_avatar = UsrAvatar.objects.get(user=request.user.id)
except UsrAvatar.DoesNotExist:
usr_avatar = UsrAvatar.objects.get(id='0')
Run Code Online (Sandbox Code Playgroud)
template.html
<img src="{{ usr_avatar.avatar_image.url }}" >
Run Code Online (Sandbox Code Playgroud)
这工作正常,但每次用户没有上传他/她的头像时,我正在访问数据库中的默认头像图像.
当用户没有通过某种方式将默认图像链接归因于usr_avatar或仅仅在template.html中执行某些操作时,是否有办法消除对数据库的影响?谢谢!
django-imagekit ×10
django ×9
python ×5
image ×2
imagekit ×2
ajax ×1
django-views ×1
imagefield ×1
jquery ×1
photologue ×1
pillow ×1
upload ×1