New abstracted options to adjust document conversion quality (default, low, high)

This commit is contained in:
Roberto Rosario
2011-02-12 04:12:39 -04:00
parent f3fab1b7d9
commit 1786764e5f
8 changed files with 59 additions and 19 deletions
+1 -1
View File
@@ -37,7 +37,7 @@ STORAGE_DIRECTORY_NAME = getattr(settings, 'DOCUMENTS_STORAGE_DIRECTORY_NAME', '
# Usage
PREVIEW_SIZE = getattr(settings, 'DOCUMENTS_PREVIEW_SIZE', '640x480')
THUMBNAIL_SIZE = getattr(settings, 'DOCUMENTS_THUMBNAIL_SIZE', '50x50')
DISPLAY_SIZE = getattr(settings, 'DOCUMENTS_DISPLAY_SIZE', '1024x768')
DISPLAY_SIZE = getattr(settings, 'DOCUMENTS_DISPLAY_SIZE', '1200')
#Groups
GROUP_MAX_RESULTS = getattr(settings, 'DOCUMENTS_GROUP_MAX_RESULTS', 20)
+4 -1
View File
@@ -6,6 +6,9 @@ from documents.conf.settings import PREVIEW_SIZE
from documents.conf.settings import THUMBNAIL_SIZE
from documents.conf.settings import DISPLAY_SIZE
from converter.api import QUALITY_HIGH
urlpatterns = patterns('documents.views',
url(r'^document/list/$', 'document_list', (), 'document_list'),
url(r'^document/create/from/local/single/$', 'document_create', {'multiple':False}, 'document_create'),
@@ -18,7 +21,7 @@ urlpatterns = patterns('documents.views',
url(r'^document/(?P<document_id>\d+)/edit/metadata/$', 'document_edit_metadata', (), 'document_edit_metadata'),
url(r'^document/(?P<document_id>\d+)/preview/$', 'get_document_image', {'size':PREVIEW_SIZE}, 'document_preview'),
url(r'^document/(?P<document_id>\d+)/thumbnail/$', 'get_document_image', {'size':THUMBNAIL_SIZE}, 'document_thumbnail'),
url(r'^document/(?P<document_id>\d+)/display/$', 'get_document_image', {'size':DISPLAY_SIZE}, 'document_display'),
url(r'^document/(?P<document_id>\d+)/display/$', 'get_document_image', {'size':DISPLAY_SIZE,'quality':QUALITY_HIGH}, 'document_display'),
url(r'^document/(?P<document_id>\d+)/download/$', 'document_download', (), 'document_download'),
url(r'^document/(?P<document_id>\d+)/create/siblings/$', 'document_create_sibling', {'multiple':False}, 'document_create_sibling'),
+6 -6
View File
@@ -13,7 +13,7 @@ from django.utils.http import urlencode
from django.template.defaultfilters import slugify
from filetransfers.api import serve_file
from converter.api import convert, in_image_cache
from converter.api import convert, in_image_cache, QUALITY_DEFAULT
from common.utils import pretty_size
from utils import from_descriptor_to_tempfile
@@ -374,20 +374,20 @@ def document_edit_metadata(request, document_id):
}, context_instance=RequestContext(request))
def get_document_image(request, document_id, size=PREVIEW_SIZE):
def get_document_image(request, document_id, size=PREVIEW_SIZE, quality=QUALITY_DEFAULT):
document = get_object_or_404(Document, pk=document_id)
try:
filepath = in_image_cache(document.checksum, size)
filepath = in_image_cache(document.checksum, size=size, quality=quality)
if filepath:
return serve_file(request, File(file=open(filepath, 'r')))
#Save to a temporary location
document.file.open()
desc = document.file.storage.open(document.file.path)
filepath = from_descriptor_to_tempfile(desc, document.checksum)
output_file = convert(filepath, size)
return serve_file(request, File(file=open(output_file, 'r')))
output_file = convert(filepath, size=size, format='jpg', quality=quality)
return serve_file(request, File(file=open(output_file, 'r')), content_type='image/jpeg')
except Exception, e:
if size == THUMBNAIL_SIZE:
return serve_file(request, File(file=open('%simages/picture_error.png' % settings.MEDIA_ROOT, 'r')))