css-focus-within.json 11e3a9652a first 7 anni fa css-font-rendering-controls.json 11e3a9652a first 7 anni fa css-font-stretch.json 11e3a9652a first 7 anni fa css-gencontent.json 11e3a9652a first 7 anni fa css-gradients.json 11e3a9652a first 7 anni fa css-grid.json 11e3a9652a first 7 anni fa css-hanging-punctuation.json 11e3a9652a first 7 anni fa css-has.json 11e3a9652a first 7 anni fa css-hyphenate.json 11e3a9652a first 7 anni fa css-hyphens.json 11e3a9652a first 7 anni fa css-image-orientation.json 11e3a9652a first 7 anni fa css-image-set.json 11e3a9652a first 7 anni fa css-in-out-of-range.json 11e3a9652a first 7 anni fa css-indeterminate-pseudo.json 11e3a9652a first 7 anni fa css-initial-letter.json 11e3a9652a first 7 anni fa css-initial-value.json 11e3a9652a first 7 anni fa css-letter-spacing.json 11e3a9652a first 7 anni fa css-line-clamp.json 11e3a9652a first 7 anni fa css-logical-props.json 11e3a9652a first 7 anni fa css-marker-pseudo.json 11e3a9652a first 7 anni fa css-masks.json 11e3a9652a first 7 anni fa css-matches-pseudo.json 11e3a9652a first 7 anni fa css-media-interaction.json 11e3a9652a first 7 anni fa css-media-resolution.json 11e3a9652a first 7 anni fa css-media-scripting.json 11e3a9652a first 7 anni fa css-mediaqueries.json 11e3a9652a first 7 anni fa css-mixblendmode.json 11e3a9652a first 7 anni fa css-motion-paths.json 11e3a9652a first 7 anni fa css-namespaces.json 11e3a9652a first 7 anni fa css-not-sel-list.json 11e3a9652a first 7 anni fa css-nth-child-of.json 11e3a9652a first 7 anni fa css-opacity.json 11e3a9652a first 7 anni fa css-optional-pseudo.json 11e3a9652a first 7 anni fa css-overflow-anchor.json 11e3a9652a first 7 anni fa css-overscroll-behavior.json 11e3a9652a first 7 anni fa css-page-break.json 11e3a9652a first 7 anni fa css-paged-media.json 11e3a9652a first 7 anni fa css-paint-api.json 11e3a9652a first 7 anni fa css-placeholder-shown.json 11e3a9652a first 7 anni fa css-placeholder.json 11e3a9652a first 7 anni fa css-read-only-write.json 11e3a9652a first 7 anni fa css-rebeccapurple.json 11e3a9652a first 7 anni fa css-reflections.json 11e3a9652a first 7 anni fa css-regions.json 11e3a9652a first 7 anni fa css-repeating-gradients.json 11e3a9652a first 7 anni fa css-resize.json 11e3a9652a first 7 anni fa css-revert-value.json 11e3a9652a first 7 anni fa css-rrggbbaa.json 11e3a9652a first 7 anni fa css-scroll-behavior.json 11e3a9652a first 7 anni fa css-scrollbar.json 11e3a9652a first 7 anni fa css-sel2.json 11e3a9652a first 7 anni fa css-sel3.json 11e3a9652a first 7 anni fa css-selection.json 11e3a9652a first 7 anni fa css-shapes.json 11e3a9652a first 7 anni fa css-snappoints.json 11e3a9652a first 7 anni fa css-sticky.json 11e3a9652a first 7 anni fa css-supports-api.json 11e3a9652a first 7 anni fa css-table.json 11e3a9652a first 7 anni fa css-text-align-last.json 11e3a9652a first 7 anni fa css-text-indent.json 11e3a9652a first 7 anni fa css-text-justify.json 11e3a9652a first 7 anni fa css-text-orientation.json 11e3a9652a first 7 anni fa css-text-spacing.json 11e3a9652a first 7 anni fa css-textshadow.json 11e3a9652a first 7 anni fa css-touch-action-2.json 11e3a9652a first 7 anni fa css-touch-action.json 11e3a9652a first 7 anni fa css-transitions.json 11e3a9652a first 7 anni fa css-unicode-bidi.json 11e3a9652a first 7 anni fa css-unset-value.json 11e3a9652a first 7 anni fa css-variables.json 11e3a9652a first 7 anni fa css-widows-orphans.json 11e3a9652a first 7 anni fa css-writing-mode.json 11e3a9652a first 7 anni fa css-zoom.json 11e3a9652a first 7 anni fa css3-attr.json 11e3a9652a first 7 anni fa css3-boxsizing.json 11e3a9652a first 7 anni fa css3-colors.json 11e3a9652a first 7 anni fa css3-cursors-grab.json 11e3a9652a first 7 anni fa css3-cursors-newer.json 11e3a9652a first 7 anni fa css3-cursors.json 11e3a9652a first 7 anni fa css3-tabsize.json 11e3a9652a first 7 anni fa currentcolor.json 11e3a9652a first 7 anni fa custom-elements.json 11e3a9652a first 7 anni fa custom-elementsv1.json 11e3a9652a first 7 anni fa customevent.json 11e3a9652a first 7 anni fa datalist.json 11e3a9652a first 7 anni fa dataset.json 11e3a9652a first 7 anni fa datauri.json 11e3a9652a first 7 anni fa details.json 11e3a9652a first 7 anni fa deviceorientation.json 11e3a9652a first 7 anni fa devicepixelratio.json 11e3a9652a first 7 anni fa dialog.json 11e3a9652a first 7 anni fa dispatchevent.json 11e3a9652a first 7 anni fa do-not-track.json 11e3a9652a first 7 anni fa document-currentscript.json 11e3a9652a first 7 anni fa document-evaluate-xpath.json 11e3a9652a first 7 anni fa document-execcommand.json 11e3a9652a first 7 anni fa document-scrollingelement.json 11e3a9652a first 7 anni fa documenthead.json 11e3a9652a first 7 anni fa dom-manip-convenience.json 11e3a9652a first 7 anni fa dom-range.json 11e3a9652a first 7 anni fa domcontentloaded.json 11e3a9652a first 7 anni fa domfocusin-domfocusout-events.json 11e3a9652a first 7 anni fa dommatrix.json 11e3a9652a first 7 anni fa download.json 11e3a9652a first 7 anni fa dragndrop.json 11e3a9652a first 7 anni fa element-closest.json 11e3a9652a first 7 anni fa element-from-point.json 11e3a9652a first 7 anni fa eme.json 11e3a9652a first 7 anni fa eot.json 11e3a9652a first 7 anni fa es5.json 11e3a9652a first 7 anni fa es6-class.json 11e3a9652a first 7 anni fa es6-generators.json 11e3a9652a first 7 anni fa es6-module-dynamic-import.json 11e3a9652a first 7 anni fa es6-module.json 11e3a9652a first 7 anni fa es6-number.json 11e3a9652a first 7 anni fa es6-string-includes.json 11e3a9652a first 7 anni fa eventsource.json 11e3a9652a first 7 anni fa fetch.json 11e3a9652a first 7 anni fa fieldset-disabled.json 11e3a9652a first 7 anni fa fileapi.json 11e3a9652a first 7 anni fa filereader.json 11e3a9652a first 7 anni fa filereadersync.json 11e3a9652a first 7 anni fa filesystem.json 11e3a9652a first 7 anni fa flac.json 11e3a9652a first 7 anni fa flexbox.json 11e3a9652a first 7 anni fa flow-root.json 11e3a9652a first 7 anni fa focusin-focusout-events.json 11e3a9652a first 7 anni fa focusoptions-preventscroll.json 11e3a9652a first 7 anni fa font-family-system-ui.json 11e3a9652a first 7 anni fa font-feature.json 11e3a9652a first 7 anni fa font-kerning.json 11e3a9652a first 7 anni fa font-loading.json 11e3a9652a first 7 anni fa font-size-adjust.json 11e3a9652a first 7 anni fa font-smooth.json 11e3a9652a first 7 anni fa font-unicode-range.json 11e3a9652a first 7 anni fa font-variant-alternates.json 11e3a9652a first 7 anni fa font-variant-east-asian.json 11e3a9652a first 7 anni fa fontface.json 11e3a9652a first 7 anni fa form-attribute.json 11e3a9652a first 7 anni fa form-submit-attributes.json 11e3a9652a first 7 anni fa form-validation.json 11e3a9652a first 7 anni fa forms.json 11e3a9652a first 7 anni fa fullscreen.json 11e3a9652a first 7 anni fa gamepad.json 11e3a9652a first 7 anni fa geolocation.json 11e3a9652a first 7 anni fa getboundingclientrect.json 11e3a9652a first 7 anni fa getcomputedstyle.json 11e3a9652a first 7 anni fa getelementsbyclassname.json 11e3a9652a first 7 anni fa getrandomvalues.json 11e3a9652a first 7 anni fa hardwareconcurrency.json 11e3a9652a first 7 anni fa hashchange.json 11e3a9652a first 7 anni fa heif.json 11e3a9652a first 7 anni fa hevc.json 11e3a9652a first 7 anni fa hidden.json 11e3a9652a first 7 anni fa high-resolution-time.json 11e3a9652a first 7 anni fa history.json 11e3a9652a first 7 anni fa html-media-capture.json 11e3a9652a first 7 anni fa html5semantic.json 11e3a9652a first 7 anni fa http-live-streaming.json 11e3a9652a first 7 anni fa http2.json 11e3a9652a first 7 anni fa iframe-sandbox.json 11e3a9652a first 7 anni fa iframe-seamless.json 11e3a9652a first 7 anni fa iframe-srcdoc.json 11e3a9652a first 7 anni fa imagecapture.json 11e3a9652a first 7 anni fa ime.json 11e3a9652a first 7 anni fa img-naturalwidth-naturalheight.json 11e3a9652a first 7 anni fa imports.json 11e3a9652a first 7 anni fa indeterminate-checkbox.json 11e3a9652a first 7 anni fa indexeddb.json 11e3a9652a first 7 anni fa indexeddb2.json 11e3a9652a first 7 anni fa inline-block.json 11e3a9652a first 7 anni fa innertext.json 11e3a9652a first 7 anni fa input-autocomplete-onoff.json 11e3a9652a first 7 anni fa input-color.json 11e3a9652a first 7 anni fa input-datetime.json 11e3a9652a first 7 anni fa input-email-tel-url.json 11e3a9652a first 7 anni fa input-event.json 11e3a9652a first 7 anni fa input-file-accept.json 11e3a9652a first 7 anni fa input-file-directory.json 11e3a9652a first 7 anni fa input-file-multiple.json 11e3a9652a first 7 anni fa input-inputmode.json 11e3a9652a first 7 anni fa input-minlength.json 11e3a9652a first 7 anni fa input-number.json 11e3a9652a first 7 anni fa input-pattern.json 11e3a9652a first 7 anni fa input-placeholder.json 11e3a9652a first 7 anni fa input-range.json 11e3a9652a first 7 anni fa input-search.json 11e3a9652a first 7 anni fa input-selection.json 11e3a9652a first 7 anni fa insert-adjacent.json 11e3a9652a first 7 anni fa insertadjacenthtml.json 11e3a9652a first 7 anni fa internationalization.json 11e3a9652a first 7 anni fa intersectionobserver.json 11e3a9652a first 7 anni fa intrinsic-width.json 11e3a9652a first 7 anni fa jpeg2000.json 11e3a9652a first 7 anni fa jpegxr.json 11e3a9652a first 7 anni fa json.json 11e3a9652a first 7 anni fa kerning-pairs-ligatures.json 11e3a9652a first 7 anni fa keyboardevent-charcode.json 11e3a9652a first 7 anni fa keyboardevent-code.json 11e3a9652a first 7 anni fa keyboardevent-getmodifierstate.json 11e3a9652a first 7 anni fa keyboardevent-key.json 11e3a9652a first 7 anni fa keyboardevent-location.json 11e3a9652a first 7 anni fa keyboardevent-which.json 11e3a9652a first 7 anni fa lazyload.json 11e3a9652a first 7 anni fa let.json 11e3a9652a first 7 anni fa link-icon-png.json 11e3a9652a first 7 anni fa link-icon-svg.json 11e3a9652a first 7 anni fa link-rel-dns-prefetch.json 11e3a9652a first 7 anni fa link-rel-preconnect.json 11e3a9652a first 7 anni fa link-rel-prefetch.json 11e3a9652a first 7 anni fa link-rel-preload.json 11e3a9652a first 7 anni fa link-rel-prerender.json 11e3a9652a first 7 anni fa localecompare.json 11e3a9652a first 7 anni fa matchesselector.json 11e3a9652a first 7 anni fa matchmedia.json 11e3a9652a first 7 anni fa mathml.json 11e3a9652a first 7 anni fa maxlength.json 11e3a9652a first 7 anni fa media-attribute.json 11e3a9652a first 7 anni fa media-fragments.json 11e3a9652a first 7 anni fa media-session-api.json 11e3a9652a first 7 anni fa mediacapture-fromelement.json 11e3a9652a first 7 anni fa mediarecorder.json 11e3a9652a first 7 anni fa mediasource.json 11e3a9652a first 7 anni fa menu.json 11e3a9652a first 7 anni fa meter.json 11e3a9652a first 7 anni fa midi.json 11e3a9652a first 7 anni fa minmaxwh.json 11e3a9652a first 7 anni fa mp3.json 11e3a9652a first 7 anni fa mpeg-dash.json 11e3a9652a first 7 anni fa mpeg4.json 11e3a9652a first 7 anni fa multibackgrounds.json 11e3a9652a first 7 anni fa multicolumn.json 11e3a9652a first 7 anni fa mutation-events.json 11e3a9652a first 7 anni fa mutationobserver.json 11e3a9652a first 7 anni fa namevalue-storage.json 11e3a9652a first 7 anni fa nav-timing.json 11e3a9652a first 7 anni fa navigator-language.json 11e3a9652a first 7 anni fa netinfo.json 11e3a9652a first 7 anni fa node-contains.json 11e3a9652a first 7 anni fa node-parentelement.json 11e3a9652a first 7 anni fa notifications.json 11e3a9652a first 7 anni fa object-fit.json 11e3a9652a first 7 anni fa object-observe.json 11e3a9652a first 7 anni fa object-values.json 11e3a9652a first 7 anni fa objectrtc.json 11e3a9652a first 7 anni fa offline-apps.json 11e3a9652a first 7 anni fa offscreencanvas.json 11e3a9652a first 7 anni fa ogg-vorbis.json 11e3a9652a first 7 anni fa ogv.json 11e3a9652a first 7 anni fa ol-reversed.json 11e3a9652a first 7 anni fa once-event-listener.json 11e3a9652a first 7 anni fa online-status.json 11e3a9652a first 7 anni fa opus.json 11e3a9652a first 7 anni fa outline.json 11e3a9652a first 7 anni fa pad-start-end.json 11e3a9652a first 7 anni fa page-transition-events.json 11e3a9652a first 7 anni fa pagevisibility.json 11e3a9652a first 7 anni fa passive-event-listener.json 11e3a9652a first 7 anni fa path2d.json 11e3a9652a first 7 anni fa payment-request.json 11e3a9652a first 7 anni fa permissions-api.json 11e3a9652a first 7 anni fa picture.json 11e3a9652a first 7 anni fa ping.json 11e3a9652a first 7 anni fa png-alpha.json 11e3a9652a first 7 anni fa pointer-events.json 11e3a9652a first 7 anni fa pointer.json 11e3a9652a first 7 anni fa pointerlock.json 11e3a9652a first 7 anni fa prefers-reduced-motion.json 11e3a9652a first 7 anni fa progress.json 11e3a9652a first 7 anni fa promises.json 11e3a9652a first 7 anni fa proximity.json 11e3a9652a first 7 anni fa proxy.json 11e3a9652a first 7 anni fa publickeypinning.json 11e3a9652a first 7 anni fa push-api.json 11e3a9652a first 7 anni fa queryselector.json 11e3a9652a first 7 anni fa readonly-attr.json 11e3a9652a first 7 anni fa referrer-policy.json 11e3a9652a first 7 anni fa registerprotocolhandler.json 11e3a9652a first 7 anni fa rel-noopener.json 11e3a9652a first 7 anni fa rel-noreferrer.json 11e3a9652a first 7 anni fa rellist.json 11e3a9652a first 7 anni fa rem.json 11e3a9652a first 7 anni fa requestanimationframe.json 11e3a9652a first 7 anni fa requestidlecallback.json 11e3a9652a first 7 anni fa resizeobserver.json 11e3a9652a first 7 anni fa resource-timing.json 11e3a9652a first 7 anni fa rest-parameters.json 11e3a9652a first 7 anni fa rtcpeerconnection.json 11e3a9652a first 7 anni fa ruby.json 11e3a9652a first 7 anni fa run-in.json 11e3a9652a first 7 anni fa same-site-cookie-attribute.json 11e3a9652a first 7 anni fa screen-orientation.json 11e3a9652a first 7 anni fa script-async.json 11e3a9652a first 7 anni fa script-defer.json 11e3a9652a first 7 anni fa scrollintoview.json 11e3a9652a first 7 anni fa scrollintoviewifneeded.json 11e3a9652a first 7 anni fa sdch.json 11e3a9652a first 7 anni fa selection-api.json 11e3a9652a first 7 anni fa server-timing.json 11e3a9652a first 7 anni fa serviceworkers.json 11e3a9652a first 7 anni fa setimmediate.json 11e3a9652a first 7 anni fa sha-2.json 11e3a9652a first 7 anni fa shadowdom.json 11e3a9652a first 7 anni fa shadowdomv1.json 11e3a9652a first 7 anni fa sharedworkers.json 11e3a9652a first 7 anni fa sni.json 11e3a9652a first 7 anni fa spdy.json 11e3a9652a first 7 anni fa speech-recognition.json 11e3a9652a first 7 anni fa speech-synthesis.json 11e3a9652a first 7 anni fa spellcheck-attribute.json 11e3a9652a first 7 anni fa sql-storage.json 11e3a9652a first 7 anni fa srcset.json 11e3a9652a first 7 anni fa stopimmediatepropagation.json 11e3a9652a first 7 anni fa stream.json 11e3a9652a first 7 anni fa streams.json 11e3a9652a first 7 anni fa stricttransportsecurity.json 11e3a9652a first 7 anni fa style-scoped.json 11e3a9652a first 7 anni fa subresource-integrity.json 11e3a9652a first 7 anni fa svg-css.json 11e3a9652a first 7 anni fa svg-filters.json 11e3a9652a first 7 anni fa svg-fonts.json 11e3a9652a first 7 anni fa svg-fragment.json 11e3a9652a first 7 anni fa svg-html.json 11e3a9652a first 7 anni fa svg-html5.json 11e3a9652a first 7 anni fa svg-img.json 11e3a9652a first 7 anni fa svg-smil.json 11e3a9652a first 7 anni fa svg.json 11e3a9652a first 7 anni fa symbols.json 11e3a9652a first 7 anni fa tabindex-attr.json 11e3a9652a first 7 anni fa template-literals.json 11e3a9652a first 7 anni fa template.json 11e3a9652a first 7 anni fa testfeat.json 11e3a9652a first 7 anni fa text-decoration.json 11e3a9652a first 7 anni fa text-emphasis.json 11e3a9652a first 7 anni fa text-overflow.json 11e3a9652a first 7 anni fa text-size-adjust.json 11e3a9652a first 7 anni fa text-stroke.json 11e3a9652a first 7 anni fa textcontent.json 11e3a9652a first 7 anni fa textencoder.json 11e3a9652a first 7 anni fa tls1-1.json 11e3a9652a first 7 anni fa tls1-2.json 11e3a9652a first 7 anni fa tls1-3.json 11e3a9652a first 7 anni fa token-binding.json 11e3a9652a first 7 anni fa touch.json 11e3a9652a first 7 anni fa transforms2d.json 11e3a9652a first 7 anni fa transforms3d.json 11e3a9652a first 7 anni fa ttf.json 11e3a9652a first 7 anni fa typedarrays.json 11e3a9652a first 7 anni fa u2f.json 11e3a9652a first 7 anni fa unhandledrejection.json 11e3a9652a first 7 anni fa upgradeinsecurerequests.json 11e3a9652a first 7 anni fa url.json 11e3a9652a first 7 anni fa urlsearchparams.json 11e3a9652a first 7 anni fa use-strict.json 11e3a9652a first 7 anni fa user-select-none.json 11e3a9652a first 7 anni fa user-timing.json 11e3a9652a first 7 anni fa variable-fonts.json 11e3a9652a first 7 anni fa vibration.json 11e3a9652a first 7 anni fa video.json 11e3a9652a first 7 anni fa videotracks.json 11e3a9652a first 7 anni fa viewport-units.json 11e3a9652a first 7 anni fa wai-aria.json 11e3a9652a first 7 anni fa wasm.json 11e3a9652a first 7 anni fa wav.json 11e3a9652a first 7 anni fa wbr-element.json 11e3a9652a first 7 anni fa web-animation.json 11e3a9652a first 7 anni fa web-app-manifest.json 11e3a9652a first 7 anni fa web-bluetooth.json 11e3a9652a first 7 anni fa web-share.json 11e3a9652a first 7 anni fa webgl.json 11e3a9652a first 7 anni fa webgl2.json 11e3a9652a first 7 anni fa webm.json 11e3a9652a first 7 anni fa webp.json 11e3a9652a first 7 anni fa websockets.json 11e3a9652a first 7 anni fa webusb.json 11e3a9652a first 7 anni fa webvr.json 11e3a9652a first 7 anni fa webvtt.json 11e3a9652a first 7 anni fa webworkers.json 11e3a9652a first 7 anni fa will-change.json 11e3a9652a first 7 anni fa woff.json 11e3a9652a first 7 anni fa woff2.json 11e3a9652a first 7 anni fa word-break.json 11e3a9652a first 7 anni fa wordwrap.json 11e3a9652a first 7 anni fa x-doc-messaging.json 11e3a9652a first 7 anni fa x-frame-options.json 11e3a9652a first 7 anni fa xhr2.json 11e3a9652a first 7 anni fa xhtml.json 11e3a9652a first 7 anni fa xhtmlsmil.json 11e3a9652a first 7 anni fa xml-serializer.json 11e3a9652a first 7 anni fa kodo - Gogs: Go Git Service

Sin Descripción

watermark_utils.py 3.0KB

    # -*- coding: utf-8 -*- try: import Image import ImageEnhance except ImportError: from PIL import Image, ImageEnhance def reduce_opacity(im, opacity): """Returns an image with reduced opacity.""" assert 0 <= opacity <= 1 im = im.convert('RGBA') if im.mode != 'RGBA' else im.copy() alpha = im.split()[3] alpha = ImageEnhance.Brightness(alpha).enhance(opacity) im.putalpha(alpha) return im def watermark(im, mark, position, opacity=1, maxsize=(0, 0), possize=(0, 0, None, None)): """ Add watermark to image """ if opacity < 1: mark = reduce_opacity(mark, opacity) # if im.mode != 'RGBA': # im = im.convert('RGBA') # Resize mark w, h = int(min(mark.size[0], maxsize[0]) if maxsize[0] else mark.size[0]), int(min(mark.size[1], maxsize[1]) if maxsize[1] else mark.size[1]) mark = mark.resize((w, h)) # Create a transparent layer the size of the image # Draw the watermark in that layer. layer = Image.new('RGBA', im.size, (0, 0, 0, 0)) if position == 'tile': for y in range(0, im.size[1], mark.size[1]): for x in range(0, im.size[0], mark.size[0]): layer.paste(mark, (x, y)) elif position == 'scale': # Scale, but preserve the aspect ratio ratio = min(float(im.size[0]) / mark.size[0], float(im.size[1]) / mark.size[1]) w, h = int(mark.size[0] * ratio), int(mark.size[1] * ratio) w, h = int(min(w, maxsize[0]) if maxsize[0] else w), int(min(h, maxsize[1]) if maxsize[1] else h) mark = mark.resize((w, h)) possize += (None, ) * (4 - len(possize)) lx, ly, rx, ry = possize if rx is None or ry is None: layer.paste(mark, ((im.size[0] - (lx or w)) / 2, (im.size[1] - (ly or h)) / 2)) else: layer.paste(mark, ((im.size[0] - rx - w), ry)) else: layer.paste(mark, position) # Composite the watermark with the layer return Image.composite(layer, im, layer) def watermark_wrap(im_path, mark_path, save_path=''): im, mark = Image.open(im_path), Image.open(mark_path) # new_im = watermark(im, mark, (50, 50), 0.5) # new_im = watermark(im, mark, position='scale', opacity=1.0, maxsize=(400, 505.2), possize=(400, 400)) new_im = watermark(im, mark, position='scale', opacity=1.0, maxsize=(200, 247.1875), possize=(0, 0, 15, 15)) new_im.save(save_path or im_path) def watermark_test(): im, mark = Image.open('original_CGzC_10a50000c8811190.jpg'), Image.open('paiai_water_mark.png') watermark(im, mark, position='tile', opacity=0.5, maxsize=(40, 49.4375)).show() watermark(im, mark, position='scale', opacity=1.0, maxsize=(400, 494.375), possize=(400, 400)).show() watermark(im, mark, position='scale', opacity=1.0, maxsize=(200, 247.1875), possize=(0, 0, 10, 10)).show() watermark(im, mark, position=(50, 50), opacity=0.5, maxsize=(40, 49.4375)).show() if __name__ == '__main__': # watermark_test() watermark_wrap('original_CGzC_10a50000c8811190.jpg', 'paiai_water_mark.png')