def thumbnail(request, type, identifier): response = HttpResponse(mimetype="image/png") size = str(request.GET.get("size", "190x270")) if not re.match("\d+[x]\d+", size): size = "190x270" cache_key = "thumbnail:%s:%s:%s" % (type, identifier, size) cached = cache.get(cache_key) if cached is None: if type == "file": file_ = str(os.path.join(settings.INCOMING_DIRECTORY, identifier)) elif type == "document": document = get_object_or_404(Document, pk=identifier) file_ = Blob(document.document.read()) image = Image(file_) image.filterType(FilterTypes.SincFilter) image.scale(size) output = Blob() image.write(output, "png") response.write(output.data) cache.set(cache_key, output.data) else: response.write(cached) return response
def test(): from pgmagick import Image, FilterTypes im = Image( './chambres-deluxes-I/chambre-101-s-474.tif' ) im.quality( 100 ) im.filterType( FilterTypes.SincFilter ) im.scale( '100x100' ) im.sharpen( 1.0 ) im.write( 'output.jpg' )
def deferred_pgmagick(): im = PGImage(imagename) im.filterType(FilterTypes.CatromFilter) im.zoom(Geometry(1024, 768)) im.quality(85) im.magick('jpeg') im.write(Blob())
def test(): from pgmagick import Image, FilterTypes im = Image('./chambres-deluxes-I/chambre-101-s-474.tif') im.quality(100) im.filterType(FilterTypes.SincFilter) im.scale('100x100') im.sharpen(1.0) im.write('output.jpg')
def addScreenshot(f, arg, user_id, item): if item == 'map': Object = Maps.objects.filter(id=arg) if not Object: return False if not (Object[0].user_id == user_id.id or user_id.is_superuser): return False else: return False tempname = '/tmp/screenshot.temp' with open(tempname, 'wb+') as destination: for chunk in f.chunks(): destination.write(chunk) command = 'file -b --mime-type %s' % tempname proc = Popen(command.split(), stdout=PIPE).communicate() mimetype = proc[0].strip() if mimetype not in ['image/jpeg','image/png','image/gif']: return False userObject = User.objects.get(pk=Object[0].user_id) transac = Screenshots( user = userObject, ex_id = int(arg), ex_name = item+"s", posted = timezone.now(), map_preview = False, ) transac.save() path = os.getcwd() + os.sep + __name__.split('.')[0] + '/data/screenshots/' + str(transac.id) + '/' if not os.path.exists(path): os.makedirs(path) shutil.move(tempname, path + arg + "." + mimetype.split('/')[1]) command = 'identify -format "%w,%h" {0}'.format(path + arg + "." + mimetype.split('/')[1]) proc = Popen(command.split(), stdout=PIPE).communicate() details = proc[0].strip().strip('"').split(',') im = Image(Blob(open(path + arg + "." + mimetype.split('/')[1]).read()), Geometry(int(details[0]),int(details[1]))) scaleH = int(details[0]) / 100.0 scaleH = 250 / scaleH scaleH = int(details[1]) / 100.0 * scaleH im.quality(100) im.filterType(FilterTypes.SincFilter) im.scale('250x%s' % scaleH) im.sharpen(1.0) im.write(str(path + arg + "-mini." + mimetype.split('/')[1]))
def create_test_data(self): im = Image(root('resources', 'color_circle.png').encode('utf-8')) if self.mode == 'RGB': im.type(ImageType.TrueColorType) elif self.mode == 'RGBA': im.type(ImageType.TrueColorMatteType) elif self.mode == 'L': im.type(ImageType.GrayscaleType) elif self.mode in 'LA': im.type(ImageType.GrayscaleMatteType) else: raise ValueError('Unknown mode: {}'.format(self.mode)) im.filterType(FilterTypes.CatromFilter) im.zoom(Geometry(b"{}x{}!".format(self.size[0], self.size[1]))) return [im]
def create_test_data(self): im = Image(root('resources', 'color_circle.png').encode('utf-8')) if self.mode == 'RGB': im.type(ImageType.TrueColorType) elif self.mode == 'RGBA': im.type(ImageType.TrueColorMatteType) elif self.mode == 'L': im.type(ImageType.GrayscaleType) elif self.mode in 'LA': im.type(ImageType.GrayscaleMatteType) else: raise ValueError('Unknown mode: {}'.format(self.mode)) im.filterType(FilterTypes.CatromFilter) im.zoom(Geometry(b"{}x{}!".format(self.size[0], self.size[1]))) return [im]
import sys from pgmagick import Image, FilterTypes as ft # same # convert SRC.jpg -filter Sinc -resize 500x500 -sharpen 1 -quality 100 DST.jpg # gm convert SRC.jpg -filter Sinc -resize 500x500 -sharpen 1 -quality 100 DST.jpg im = Image('./X.jpg') im.quality(100) im.sharpen(1.0) im.write('./Y.jpg') im = Image('./X.jpg') im.quality(100) im.filterType(ft.SincFilter) im.scale('1000x1000') im.sharpen(1.0) im.write('./Y.jpg') im = Image('./X.jpg') im.quality(100) im.filterType(ft.SincFilter) im.scale('100x100') im.sharpen(1.0) im.write('./Y.jpg') im = Image('./X.jpg') im.quality(100) im.filterType(ft.SincFilter) im.scale('500x500') im.sharpen(1.0)
print orig_args['width'], orig_args['high'] if getW > orig_args['width'] or getH > orig_args['high']: log.error( "[uid]:%s请求的缩略图大过于原图了。[origImg]:%sx%s,[requestImg]:%sx%s" % (upUid, getW, getH, orig_args['width'], orig_args['high'])) #原图返回 return '''{"img":"%s","thumb":"%s","status":"1"}''' % ( realAddImg, realAddImg) else: thumb = Blob() im = Image(orig_blob) im.quality(100) im.filterType(FilterTypes.SincFilter) im.scale(upThumbnail) im.sharpen(1.0) thumbName = "%s_%s_%s_%s.%s" % (upUid, upMd5, timestamp, upThumbnail, ext) thumbFile = thumbDir + '/' + thumbName im.write(thumbFile) log.info("%s [uid]:%s成功生成缩略图%s." % (client, upUid, thumbFile)) realThumbPath = thumbFile.split('/') realAddThumb = realAdd + realThumbPath[ -2] + '/' + realThumbPath[-1] fp.close() return """{"img":"%s","thumb":"%s","status":"1"}""" % (
from pgmagick import Image, FilterTypes im = Image('X.jpg') im.filterType(FilterTypes.SincFilter) im.resize('100x100') im.write('output.jpg')