示例#1
0
文件: views.py 项目: mayfer/m
def generate(request, morph_id):
	try:
		morph = Morph.objects.get(id=morph_id)
		if morph.final:
			return redirect(label='morphin:view', args=[morph_id])
	except:
		not_found()
		
	response = {}
	if request.method == 'POST' and 'data' in request.POST:
		response['status'] = 'ok'
		input = json.loads(request.POST['data'])
		morpher = Morpher(morph.master_image.path, morph.slave_image.path)
		
		gif_path = morpher.generate_frames(input['markers'])
		
		morph.morph_image = os.path.join('uploads', str(morph.id), os.path.basename(gif_path))
		morph.points = json.dumps(input['markers'])
		morph.save()
		
		response['data'] = input
		response['image_url'] = morph.morph_image.url
	else:
		response['status'] = 'error'
	return json_response(response)
示例#2
0
文件: views.py 项目: mayfer/m
def crop(request, morph_id):
	try:
		morph = Morph.objects.get(id=morph_id)
		if morph.final:
			return redirect(label='morphin:view', args=[morph_id])
	except:
		not_found()
	
	if request.method == 'POST':
		cropper_master = Cropper(morph.master_image.path)
		cropper_slave = Cropper(morph.slave_image.path)
		
		master_cropdata = json.loads(request.POST['master'])
		slave_cropdata = json.loads(request.POST['slave'])
		
		cropper_master.crop(master_cropdata)
		cropper_slave.crop(slave_cropdata)
		
		# resize to the average of the two images
		mw, mh = cropper_master.image.size
		sw, sh = cropper_master.image.size
		w = (mw+sw)/2
		h = (mh+sh)/2
		print w, h
		cropper_master.resize(w, h)
		cropper_slave.resize(w, h)
			
		return redirect(label='morphin:points', args=[morph_id])
	else:
		response = {
			'morph': morph
		}
		return template_response('morphin/crop.html', response, request)
示例#3
0
文件: views.py 项目: mayfer/m
def points(request, morph_id):
	try:
		morph = Morph.objects.get(id=morph_id)
		if morph.final:
			return redirect(label='morphin:view', args=[morph_id])
	except:
		not_found()
		
	response = {'morph': morph}
	return template_response('morphin/points.html', response, request)
示例#4
0
文件: views.py 项目: mayfer/m
def view(request, morph_id):
	firsttime = False
	try:
		morph = Morph.objects.get(id=morph_id)
		if not morph.final:
			if request.method == "POST" and 'caption' in request.POST and request.POST['caption'] != "Enter a caption. Or not.":
				morph.caption = request.POST['caption']
			firsttime = True
			morph.final = True
			morph.save()
	except:
		not_found()
		
	if not morph.morph_image:
		not_found()
	
	response = {
		'morph': morph,
		'firsttime': firsttime
	}
	
	return template_response('morphin/view.html', response, request)