System and method for modifying display content

By quickly alternately displaying modified frames and solid color frames, the problem of screen capture not blocking sensitive content is solved, and the security and privacy of content is protected without affecting the user experience.

CN120390931APending Publication Date: 2025-07-29SNAP INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380087689.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-12-20
Filing Date
2023-12-18
Publication Date
2025-07-29

AI Technical Summary

Technical Problem

The prior art cannot effectively block screen capture, resulting in the permanent storage of sensitive content, which poses security and privacy risks.

Method used

By generating a set of quickly alternating frames to display content, including modified frames and solid color frames, the frame rate is faster than the human eye recognition frequency, ensuring that screen capture cannot fully capture sensitive content.

Benefits of technology

Without affecting the user's visual experience, it effectively blocks screen capture and protects sensitive content from being permanently saved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120390931A_ABST
    Figure CN120390931A_ABST
Patent Text Reader

Abstract

Systems and methods for blocking screen capture of content by a user device include accessing a content item. The system and method also include generating a modified content item based on the content item, the modified content item comprising a set of frames, the set of frames comprising: a first frame comprising a modified version of the content item; and a second frame including a pure color. The system and method also include causing the modified content item to be displayed by the user device. The causing displaying includes causing the user device to alternate between displaying the first frame and displaying the second frame.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Priority Claim

[0002] This application claims the benefit of U.S. Patent Application No. 18 / 069,021, filed Dec. 20, 2022, the entire content of which is incorporated herein by reference. Technical Field

[0003] The present disclosure generally relates to modifying content for display. In particular, example embodiments of the present disclosure relate to systems, methods, and user interfaces for obscuring content from being screen captured. Background Art

[0004] In recent years, ephemeral content and ephemeral messages have become increasingly popular. However, screen captures on a device can capture ephemeral content, turning the ephemeral content into a permanent image. For various reasons (including but not limited to security, privacy, and the right to be forgotten), users of an application may not want their content to be capturable by a screen capture.

[0005] Many operating systems give software developers the ability to mark elements within a user interface (UI) as sensitive elements such that if a user takes a screen capture of the UI, the data in the sensitive area is subsequently erased. Such use cases are very popular in password management, banking applications, and other applications involving sensitive user data. However, in these conventional methods of dealing with sensitive data, the data is erased by the operating system after a screen capture. There is nothing to prevent another device from taking an image of the screen of a device with sensitive content, and capturing the sensitive content, thus turning the ephemeral displayed UI into a permanent image. More sophisticated methods are needed to protect the content displayed from screen captures on a device. Brief Description of the Drawings

[0006] In the drawings (which are not necessarily drawn to scale), like reference numerals may describe similar components in different views. To easily identify the discussion of any particular element or action, one or more of the most significant digits in the reference numeral refers to the figure number in which the element was first introduced. Some non-limiting examples are shown in the figures of the drawings, in which:

[0007] Figure 1 is a graphical representation of a networked environment in which the present disclosure may be deployed, according to some examples.

[0008] Figure 2 is a graphical representation of a messaging system having both client-side and server-side functionality, according to some examples.

[0009] Figure 3 is a graphical representation of a data structure as maintained in a database, according to some examples.

[0010] Figure 4 is a graphical representation of messages according to some examples.

[0011] Figure 5 is a flowchart of access restriction processing according to some examples.

[0012] Figure 6 is a block diagram of an obscuration system according to some examples.

[0013] Figure 7 is a flowchart of a method for obscuring a user device from capturing a screen of content according to some examples.

[0014] Figure 8 is a flowchart of a method for obscuring a user device from capturing a screen of content according to some examples.

[0015] Figure 9 is a flowchart of a method for obscuring a user device from capturing a screen of content according to some examples.

[0016] Figure 10 is a flowchart of a method for obscuring a user device from capturing a screen of content according to some examples.

[0017] Figure 11A shows example content items according to some examples.

[0018] Figure 11B shows an example first frame displayed on a user device according to some examples.

[0019] Figure 11C shows an example second frame displayed on a user device according to some examples.

[0020] Figure 12A shows an example first frame displayed on a user device according to some examples.

[0021] Figure 12B shows an example second frame displayed on a user device according to some examples.

[0022] Figure 12C shows an example third frame displayed on a user device according to some examples.

[0023] Figure 13A shows a pixel set and sub-pixels according to some examples.

[0024] Figure 13B shows an example first frame at the pixel level according to some examples.

[0025] Figure 13CShows an example second frame at the pixel level according to some examples.

[0026] Figure 13D Shows an example third frame at the pixel level according to some examples.

[0027] Figure 14 Is a graphical representation of a machine in the form of a computer system within which a set of instructions can be executed to cause the machine to perform any one or more of the methods discussed herein.

[0028] Figure 15 Is a block diagram showing a software architecture in which examples can be implemented. Detailed Description

[0029] The following description relates to systems and methods for modifying display content to deter screen capture. When displaying an image, instead of displaying a static image, the system and method modify the image content to generate a dynamic display to deter the image content from being screen captured. The dynamic display includes a set of frames generated based on the image content, which are dynamically rotated between within the set of frames with each screen refresh. Thus, the content appears as a static image to the human eye because the frames flash very quickly. However, if a user performs a screen capture on a user device, the screen capture will only contain one of the frames. The captured frame will contain some form of modified content and will thus appear different from the illusion of a static image to the human eye. Thus, the screen capture is blurred without degrading the user's visual experience.

[0030] The content is modified and dynamically displayed as a set of frames such that the content is only partially displayed or only displayed for a partial time, thus making screen capture difficult. According to some embodiments, content data including content items is accessed, where the content items include sets of pixels. The content items are modified to generate a set of frames, where the set of frames includes at least a first frame and a second frame.

[0031] A set of frames is provided for display on a user device. The user device alternates between displaying the first frame and the second frame. The user device alternates between displaying the first frame and the second frame at a very fast rate, e.g., based on the display refresh rate of the user device, which is faster than what a user can perceive. That is, if the content item is a static image, the set of frames displayed will appear as a static image to the human eye rather than as a set of frames of a dynamic display. By displaying the content in this way, it appears normal to the human eye, but if the user performs a screen capture of the content item, the screen capture contains a modified content item that is wholly or partially deterred.

[0032] For some embodiments, the first frame includes a modified version of the content item and the second frame is a solid color. For example, the first frame may include a content item modified to have increased brightness and the second frame is a solid black frame. The set of frames is provided for display on a user device. The user device is caused to alternate between displaying the first frame and displaying the second frame. According to some embodiments, the set of frames includes a third frame that is also a solid color. Consistent with these embodiments, the user device is caused to rotate among the first, second, and third frames. That is, the modified content item is displayed one-third of the time and the solid color frames are displayed two-thirds of the time. Thus, the user has a higher chance of taking a screen capture of the solid color that does not contain the content item, thus blocking the content item.

[0033] For some embodiments, the first frame includes a first subset of pixels from the content item but does not include a second subset of pixels, while the second frame includes the second subset of pixels from the content item but does not include the first subset of pixels. Consistent with these embodiments, the set of frames may include additional frames, each additional frame including a subset of pixels of the content item. The subsets of pixels may be generated randomly. A subset of pixels may include a predetermined amount of pixels from the content item. Similarly, if each frame includes a predetermined amount of pixels, the predetermined amount of pixels may be the same for each frame. For example, if there are three frames in a set of frames, then each frame includes one-third of the total number of pixels in the content item. In these embodiments, if the user takes a screen capture, the user will capture a subset of pixels rather than the entire content item, thus blocking the content item.

[0034] In some embodiments, the pixels of the content item are further subdivided into sub-pixel values. For example, the color and intensity of each pixel in the content item may be represented as a pixel vector including a plurality of sub-pixel values, where each sub-pixel value is associated with a specific sub-pixel color. For example, each pixel in a display may include a red sub-pixel, a green sub-pixel, and a blue sub-pixel. Each pixel receives a pixel vector indicating how that pixel should be illuminated. Similarly, the pixel vector may be further subdivided into sub-pixel values, each sub-pixel value being associated with a sub-pixel. Thus, modifying the content item to generate a set of frames may include generating frames based on a subset of sub-pixel values from the content item. For example, the first frame has a first subset of sub-pixel values selected from the content item. Similarly, the second frame has a second subset of sub-pixel values and the third frame has a third subset of sub-pixel values. In these embodiments, if the user takes a screen capture, the user will capture a subset of sub-pixels rather than the entire content item, thereby blocking the content item.

[0035] Figure 1is a block diagram showing an example interaction system 100 for facilitating interactions on a network (e.g., exchanging text messages, making text, audio, and video calls, or playing games). Interaction system 100 includes a plurality of client systems 102, and each client system 102 among the plurality of client systems 102 hosts a plurality of applications including an interaction client 104 and other applications 106. Each interaction client 104 is communicatively coupled via one or more communication networks including a network 108 (e.g., the Internet) to other instances of the interaction client 104 (e.g., hosted on corresponding other user systems 102), an interaction server system 110, and a third-party server 112. The interaction client 104 can also communicate with the locally hosted applications 106 using an application programming interface (API).

[0036] Each user system 102 can include a plurality of user devices, such as a mobile device 114, a head-wearable device 116, and a computer client device 118, which are communicatively connected to exchange data and messages.

[0037] The interaction client 104 interacts via the network 108 with other interaction clients 104 and with the interaction server system 110. The data exchanged between the interaction clients 104 (e.g., interaction 120) and between the interaction client 104 and the interaction server system 110 includes functions (e.g., commands for activating functions) and payload data (e.g., text, audio, video, or other multimedia data).

[0038] The interaction server system 110 provides server-side functions to the interaction client 104 via the network 108. Although certain functions of the interaction system 100 are described herein as being performed by the interaction client 104 or by the interaction server system 110, whether certain functions are located within the interaction client 104 or within the interaction server system 110 can be a design choice. For example, it may be technically preferable to initially deploy a particular technology and function within the interaction server system 110, but later migrate the technology and function to the interaction client 104 where the user system 102 has sufficient processing power.

[0039] The interaction server system 110 supports various services and operations provided to the interaction client 104. Such operations include sending data to the interaction client 104, receiving data from the interaction client 104, and processing data generated by the interaction client 104. The data can include message content, client device information, geolocation information, media enhancements and overlays, message content persistence conditions, social network information, and live event information. Data exchange within the interaction system 100 is activated and controlled by functions available via the user interface (UI) of the interaction client 104.

[0040] Now turning specifically to the interactive server system 110, an application programming interface (API) server 122 is coupled to and provides a programming interface for an interactive server 124, making the functionality of the interactive server 124 accessible to interactive clients 104, other applications 106, and third-party servers 112. The interactive server 124 is communicatively coupled to a database server 126 to facilitate access to a database 128 that stores data associated with interactions processed by the interactive server 124. Similarly, a web server 130 is coupled to the interactive server 124 and provides a web-based interface to the interactive server 124. To this end, the web server 130 processes incoming network requests via the Hypertext Transfer Protocol (HTTP) and several other related protocols.

[0041] The application programming interface (API) server 122 receives and sends interaction data (e.g., commands and message payloads) between the interactive server 124 and client systems 102 (and, for example, interactive clients 104 and other applications 106) as well as third-party servers 112. Specifically, the application programming interface (API) server 122 provides a set of interfaces (e.g., routines and protocols) that interactive clients 104 and other applications 106 can call or query to activate the functionality of the interactive server 124. The application programming interface (API) server 122 exposes various functions supported by the interactive server 124, including account registration; login functionality; sending interaction data from a particular interactive client 104 to another interactive client 104 via the interactive server 124; transferring media files (e.g., images or videos) from an interactive client 104 to the interactive server 124; setting a collection of media data (e.g., a story); retrieving a list of friends of a user of the user system 102; retrieving messages and content; adding and deleting entities (e.g., friends) to / from an entity graph (e.g., a social graph); locating friends in a social graph; and opening application events (e.g., related to an interactive client 104).

[0042] The interactive server 124 hosts multiple systems and subsystems, which are described below with reference to Figure 2 for description.

[0043] Figure 2 is a block diagram showing additional details regarding the interactive system 100 according to some examples. Specifically, the interactive system 100 is shown to include an interactive client 104 and an interactive server 124. The interactive system 100 includes multiple subsystems that are supported on the client side by the interactive client 104 and on the server side by the interactive server 124. The exemplary subsystems are discussed below.

[0044] The image processing system 202 provides various functions that enable a user to capture and enhance (e.g., annotate or otherwise modify or edit) media content associated with a message.

[0045] The camera device system 204 includes control software (e.g., in a camera device application) that interacts with and controls the hardware camera device of the user system 102 (e.g., directly or via an operating system) to modify and enhance real-time images captured and displayed via the interaction client 104.

[0046] The enhancement system 206 provides functions related to the generation and publication of enhancements (e.g., media overlays) for images captured in real time by the camera device of the user system 102 or retrieved from the memory of the user system 102. For example, the enhancement system 206 is operable to select, present, and display media overlays (e.g., image filters or image lenses) for the interaction client 104 for enhancing real-time images received via the camera device system 204 or stored images retrieved from the memory of the user system 102. These enhancements are selected by the enhancement system 206 based on some input and data such as:

[0047] · The geolocation of the user system 102; and

[0048] · The social network information of the user of the user system 102.

[0049] Enhancements can include audio and visual content as well as visual effects. Examples of audio and visual content include pictures, text, logos, animations, and sound effects. Examples of visual effects include color overlays. The audio and visual content or visual effects can be applied to media content items (e.g., photos or videos) at the user system 102 for transmission in a message, or to video content such as a video content stream or feed sent from the interaction client 104. Thus, the image processing system 202 can interact with and support various subsystems of the communication system 208, such as the messaging system 210 and the video communication system 212.

[0050] Media overlays can include text or image data that can be overlaid on a photo taken by user system 102 or a video stream produced by user system 102. In some examples, the media overlay can be a location overlay (e.g., Venice Beach), a live event name, or a business name overlay (e.g., Beach Café). In other examples, the image processing system 202 uses the geolocation of user system 102 to identify a media overlay that includes the name of a business at the geolocation of user system 102. The media overlay can include other markers associated with the business. The media overlay can be stored in database 128 and accessed via database server 126.

[0051] The image processing system 202 provides a user-based publishing platform that enables a user to select a geolocation on a map and upload content associated with the selected geolocation. The user can also specify the circumstances under which a particular media overlay should be provided to other users. The image processing system 202 generates a media overlay that includes the uploaded content and associates the uploaded content with the selected geolocation.

[0052] The augmentation creation system 214 supports an augmented reality developer platform and includes applications for content creators (e.g., artists and developers) to create and publish augmentations (e.g., augmented reality experiences) for the interactive client 104. The augmentation creation system 214 provides content creators with a library of built-in features and tools that includes, for example, custom shaders, tracking techniques, and templates.

[0053] In some examples, the augmentation creation system 214 provides a business-based publishing platform that enables a business to select a specific augmentation associated with a geolocation via a bidding process. For example, the augmentation creation system 214 associates the media overlay of the highest bidding business with the corresponding geolocation for a predefined amount of time.

[0054] The communication system 208 is responsible for enabling and handling various forms of communication and interaction within the interaction system 100, and includes a messaging system 210, an audio communication system 216, an audio communication system 212, and a blocking system 218. The messaging system 210 is responsible for implementing temporary or time-limited access to content by the interaction client 104. The messaging system 210 includes multiple timers (e.g., within the short timer system 220), which selectively enable access (e.g., for presentation and display) to messages and associated content via the interaction client 104 based on the duration and display parameters associated with a message or a set of messages (e.g., a story). Additional details regarding the operation of the short timer system 220 are provided below. The audio communication system 216 enables and supports audio communication (e.g., real-time audio chat) between multiple interaction clients 104. Similarly, the video communication system 212 enables and supports video communication (e.g., real-time video chat) between multiple interaction clients 104.

[0055] In some embodiments, the communication system 208 further includes a blocking system 218. The blocking system 218 modifies visual content to obscure potential screen captures by blocking content that is subject to potential screen capture. The blocking system 218 accesses content data that at least includes a content item having visual content. The content data including the content item may be generated or modified by the imaging device system 204, the enhancement system 206, and / or the enhancement creation system 214. The blocking system 218 generates a modified content item based on the content item, wherein the presentation of the modified content item blocks the content item to obscure the screen capture. The modified content item may be provided by the messaging system 210 within the communication system 208 to the interaction client 104.

[0056] Figure 3 is a schematic diagram showing a data structure 300 that may be stored in the database 304 of the interaction server system 110 according to certain examples. Although the content of the database 304 is shown as including multiple tables, it should be understood that the data may be stored in other types of data structures (e.g., as an object-oriented database).

[0057] The database 304 includes message data stored in the message table 306. For any particular message, the message data includes at least message sender data, message recipient (or receiver) data, and a payload. Additional details regarding the information that may be included in a message and included in the message data stored in the message table 306 are described below with reference to Figure 3 Describe additional details regarding the information that may be included in a message and included in the message data stored in the message table 306.

[0058] The entity table 308 stores entity data and is linked (e.g., to a reference ground) to the entity graph 310 and the profile data 302. Entities for which records are maintained within the entity table 308 can include individuals, corporate entities, organizations, objects, locations, events, etc. Any entity for which the interaction server system 110 stores data about it can be an identified entity, regardless of the entity type. Each entity is set with a unique identifier and an entity type identifier (not shown).

[0059] The entity graph 310 stores information about the relationships and associations between entities. By way of example only, such relationships can be social relationships, professional relationships (e.g., working in a common company or organization), interest-based relationships, or activity-based relationships. Some relationships between entities can be one-way, such as a personal user's subscription to digital content of a commercial or publishing user (e.g., a newspaper or other digital media point of sale or brand). Other relationships can be two-way, such as the "friend" relationship between personal users of the interaction system 100.

[0060] Certain permissions and relationships can be attached to each relationship and can also be attached to each direction of the relationship. For example, a two-way relationship (e.g., the friend relationship between personal users) can include authorization to publish digital content items between personal users, but certain restrictions or filters can be imposed on the publication of such digital content items (e.g., based on content characteristics, location data, or time-of-day data). Similarly, the subscription relationship between a personal user and a commercial user can impose different degrees of restrictions on the publication of digital content from the commercial user to the personal user and can significantly restrict or prevent the publication of digital content from the personal user to the commercial user. As an example of an entity, a particular user can record certain restrictions (e.g., through privacy settings) in the record of that entity within the entity table 308. Such privacy settings can be applied to all types of relationships within the context of the interaction system 100 or can be selectively applied to certain types of relationships.

[0061] The profile data 302 stores various types of profile data about a particular entity. Based on the privacy settings specified by the particular entity, the profile data 302 can be selectively used and presented to other users of the interaction system 100. In the case where the entity is an individual, the profile data 302 includes, for example, a username, a phone number, an address, settings (e.g., notification and privacy settings), and an avatar representation (or a set of such avatar representations) selected by the user.

[0062] In the case where the entity is a group, in addition to the group name, members, and various settings (e.g., notifications) for the relevant group, the profile data 302 for the group can similarly include one or more avatar representations associated with the group.

[0063] The database 304 also stores enhancement data, such as overlays or filters, in an enhancement table 312. The enhancement data is associated with videos (the data of which is stored in a video table 314) and images (the data of which is stored in an image table 316) and is applied to the videos and images.

[0064] In some examples, the filters are overlays that are displayed as being superimposed on an image or video during presentation to a recipient user. Filters can be of various types, including filters selected by a user from a set of filters presented to the sending user by the interaction client 104 when the sending user is composing a message. Other types of filters include geolocation filters (also known as geo-filters), which can be presented to the sending user based on geolocation. For example, specific geolocation filters specific to a nearby or special location can be presented within the UI by the interaction client 104 based on geolocation information determined by a global positioning system (GPS) unit of the user system 102.

[0065] Another type of filter is a data filter, which can be selectively presented to the sending user by the interaction client 104 during message creation based on other input or information collected by the user system 102. Examples of data filters include the current temperature at a specific location, the current speed at which the sending user is traveling, the battery life of the user system 102, or the current time.

[0066] Other enhancement data that can be stored within the image table 316 includes augmented reality content items (e.g., corresponding to application "lenses" or augmented reality experiences). Augmented reality content items can be real-time special effects and sounds that can be added to an image or video.

[0067] The story table 318 stores data about a collection of messages and associated image, video, or audio data, which are compiled into a collection (e.g., a story or gallery). The creation of a specific collection can be initiated by a specific user (e.g., each user for whom a record is maintained in the entity table 308). A user can create a "personal story" in the form of a collection of content that has been created and sent / broadcast by that user. To this end, the UI of the interaction client 104 can include user-selectable icons to enable the sending user to add specific content to his or her personal story.

[0068] The collection can also form a "Live Story", which is a collection of content from multiple users created manually, automatically, or using a combination of manual and automatic techniques. For example, a "Live Story" can form a curated stream of content submitted by users from different locations and events. Options to contribute content to a specific Live Story can be presented to users whose client devices have location services enabled and are at a co-location event at a particular time, for example, via the UI of the interaction client 104. The interaction client 104 can identify a Live Story to a user based on the user's location. The end result is a "Live Story" told from a community perspective.

[0069] Another type of content collection is called a "Location Story", which enables users whose user system 102 is located within a specific geolocation (e.g., on a college or university campus) to contribute to a specific collection. In some examples, contributing to a Location Story may employ secondary authentication to verify that the end user belongs to a specific organization or other entity (e.g., is a student on a university campus).

[0070] As mentioned above, the video table 314 stores video data, which in some examples is associated with messages whose records are maintained in the message table 306. Similarly, the image table 316 stores image data associated with messages whose message data is stored in the entity table 308. The entity table 308 can associate various enhancements in the enhancement table 312 with the various images and videos stored in the image table 316 and the video table 314.

[0071] Figure 4 is a schematic diagram showing the structure of a message 400 according to some examples. The message 400 is generated by the interaction client 104 for transmission via the interaction server 124 to another interaction client 104. The content of a specific message 400 is used to populate the message table 306 stored in the database 304 accessible by the interaction server 124. Similarly, the content of the message 400 is stored in memory as "in-transit" or "in-flight" data of the user system 102 or the interaction server 124. The message 400 is shown to include the following example components:

[0072] ● Message identifier 402: A unique identifier that identifies the message 400.

[0073] · Message text payload 404: The text to be generated by the user via the UI of the user system 102 and included in the message 400.

[0074] · Message Image Payload 406: Image data that is captured by a camera device component of the user system 102 or retrieved from a memory component of the user system 102 and included in the message 400. The image data for a sent or received message 400 may be stored in the image table 316.

[0075] · Message Video Payload 408: Video data that is captured by a camera device component or retrieved from a memory component of the user system 102 and included in the message 400. The video data for a sent or received message 400 may be stored in the image table 316.

[0076] · Message Audio Payload 410: Audio data that is captured by a microphone or retrieved from a memory component of the user system 102 and included in the message 400.

[0077] · Message Enhancement Data 412: Enhancement data (e.g., filters, stickers, or other annotations or enhancements) that represents an enhancement to be applied to the message image payload 406, message video payload 408, or message audio payload 410 of the message 400. The enhancement data for a sent or received message 400 may be stored in the enhancement table 312.

[0078] · Message Duration Parameter 414: A parameter value that indicates, in seconds, the amount of time that the content of the message (e.g., message image payload 406, message video payload 408, message audio payload 410) will be presented to the user or be accessible to the user via the interactive client 104.

[0079] · Message Geolocation Parameter 416: Geolocation data (e.g., latitude coordinates and longitude coordinates) associated with the content payload of the message. Multiple message geolocation parameter 416 values may be included in the payload, each of these parameter values being associated with a content item included in the content (e.g., a specific image within the message image payload 406 or a specific video within the message video payload 408).

[0080] · Message Story Identifier 418: An identifier value that identifies one or more content collections (e.g., "stories" identified in the story table 318) associated with a specific content item in the message image payload 406 of the message 400. For example, the identifier value may be used to associate each of multiple images within the message image payload 406 with multiple content collections.

[0081] · Message tag 420: Each message 400 can be tagged with multiple tags, each of which in the multiple tags indicates a topic of the content included in the message payload. For example, in the case where a specific image included in the message image payload 406 depicts an animal (e.g., a lion), the tag value can be included within the message tag 420 indicating the relevant animal. The tag value can be manually generated based on user input or can be automatically generated using, for example, image recognition.

[0082] · Message sender identifier 422: An identifier (e.g., a messaging system identifier, an email address, or a device identifier) of the user of the user system 102 on which the message 400 is generated and from which the message 400 is sent.

[0083] · Message recipient identifier 424: An identifier (e.g., a messaging system identifier, an email address, or a device identifier) of the user of the user system 102 to which the message 400 is addressed.

[0084] The content (e.g., value) of each component of the message 400 can be a pointer to a location in a table in which the messaging content data value is stored. For example, the image value in the message image payload 406 can be a pointer (or address) to a location within the image table 316. Similarly, the value within the message video payload 408 can point to data stored within the image table 316, the value stored within the message enhancement data 412 can point to data stored within the enhancement table 312, the value stored within the message story identifier 418 can point to data stored within the story table 318, and the values stored within the message sender identifier 422 and the message recipient identifier 424 can point to user records stored within the entity table 308.

[0085] Figure 5 is a schematic diagram showing an access restriction process 500 according to which access to content (e.g., a transient message 502 and the multimedia payload of associated data) or a collection of content (e.g., a transient message group 504) can be time-limited (e.g., transient).

[0086] The transient message 502 is shown as being associated with a message duration parameter 506, and the value of the message duration parameter 506 determines the amount of time that the transient message 502 will be displayed by the interaction client 104 to the receiving user of the transient message 502. In some examples, depending on the amount of time specified by the sending user using the message duration parameter 506, the receiving user can view the transient message 502 for up to 10 seconds.

[0087] The message duration parameter 506 and the message recipient identifier 508 are shown as inputs to a message timer 510 that is responsible for determining the amount of time to show the short message 502 to a particular receiving user identified by the message recipient identifier 508. In particular, the short message 502 is shown to the associated receiving user for a period of time determined by the value of the message duration parameter 506. The message timer 510 is shown as providing an output to a more general message transceiver system 512 that is responsible for the overall timing of presenting content (e.g., the short message 502) to the receiving user.

[0088] The short message 502 is shown in Figure 5 as being included within a short message group 504 (e.g., a collection of messages in a personal story or an event story). The short message group 504 has an associated group duration parameter 514 whose value determines the duration for which the short message group 502 is presented and accessible by a user of the interactive system 100. For example, the group duration parameter 514 could be the duration of a concert, where the short message group 504 is a collection of content about that concert. Alternatively, a user (owning user or curator user) may specify the value of the group duration parameter 514 when performing the setup and creation of the short message group 504.

[0089] In addition, each short message 502 within the short message group 504 has an associated group participation parameter 516 whose value determines the duration for which the short message 502 is accessible within the context of the short message group 504. Thus, a particular short message 502 within the short message group 504 can "expire" and become inaccessible within the context of the short message group 504 before the short message group 504 itself expires according to the group duration parameter 514. The group duration parameter 514, the group participation parameter 516, and the message recipient identifier 508 each provide an input to a group timer 518 that is operable to first determine whether a particular short message 502 of the short message group 504 is to be shown to a particular receiving user and, if so, for how long. Note that due to the message recipient identifier 508, the short message group 504 also knows the identity of the particular receiving user.

[0090] Accordingly, the group timer 518 operably controls the overall lifespan of the associated ephemeral message group 504 and the individual ephemeral messages 502 included in the ephemeral message group 504. In some examples, each ephemeral message 502 within the ephemeral message group 504 remains viewable and accessible for a period of time specified by the group duration parameter 514. In another example, within the context of the ephemeral message group 504, a particular ephemeral message 502 may expire based on the group participation parameter 516. Note that even within the context of the ephemeral message group 504, the message duration parameter 506 can still determine the duration for which a particular ephemeral message 502 is displayed to the receiving user. Thus, the message duration parameter 506 determines the duration for which a particular ephemeral message 502 is displayed to the receiving user, regardless of whether the receiving user views the ephemeral message 502 within or outside the context of the ephemeral message group 504.

[0091] In addition, the messaging system 512 can operably remove a particular ephemeral message 502 from the ephemeral message group 504 based on determining that the particular ephemeral message 502 has exceeded the associated group participation parameter 516. For example, when the sending user has established a group participation parameter 516 of 24 hours from posting, the messaging system 512 will remove the associated ephemeral message 502 from the ephemeral message group 504 after the specified 24 hours. The messaging system 512 also operates to remove the ephemeral message group 504 when the group participation parameter 516 has expired for each ephemeral message 502 within the ephemeral message group 504, or when the ephemeral message group 504 itself has expired according to the group duration parameter 514.

[0092] In certain use cases, the creator of a particular ephemeral message group 504 can specify an indefinite group duration parameter 514. In such a case, the expiration of the group participation parameter 516 for the last remaining ephemeral message 502 within the ephemeral message group 504 will determine when the ephemeral message group 502 itself expires. In such a case, adding a new ephemeral message 502 with a new group participation parameter 516 to the ephemeral message group 504 effectively extends the lifespan of the ephemeral message group 504 to be equal to the value of the group participation parameter 516.

[0093] In response to the messaging system 512 determining that the ephemeral message group 504 has expired (e.g., is no longer accessible), the messaging system 512 communicates with the interaction system 100 (and e.g., in particular the interaction client 104) such that a marker (e.g., an icon) associated with the relevant ephemeral message group 504 is no longer displayed within the UI of the interaction client 104. Similarly, when the messaging system 512 determines that the message duration parameter 506 of a particular ephemeral message 502 has expired, the messaging system 512 causes the interaction client 104 to no longer display a marker (e.g., an icon or text identifier) associated with the ephemeral message 502.

[0094] Figure 6 is a block diagram of a blocking system 602 according to some embodiments. The blocking system 602 is responsible for blocking a user device from screen capturing visual content. As shown, the blocking system 602 includes a content store 604, a content modification system 606, and a display system 608. The blocking system 602 is Figure 2 an example of the blocking system 218.

[0095] The content store 604 stores content items and content data to be blocked by the blocking system 602. The content store 604 also stores any other relevant content (e.g., modified content items). Content data and content items can be obtained from a user, for example, via the communication system 208. For example, the content data and / or content items can be included as part of an ephemeral message (e.g., ephemeral message 502). The content data can include other data intended to be provided to the user that is intended to block screen capturing, such as any private or sensitive data.

[0096] The content data stored in the content store 604 includes at least content items, where the content items correspond to visual content. The content items include a set of pixels. The color of each pixel is based on the pixel vector of the pixel. When a content item is provided for display, the display illuminates each pixel according to its associated pixel vector.

[0097] As referenced herein, a "pixel" can refer interchangeably to the smallest addressable element in visual content (e.g., a raster image) or an element of a physical display. When referring to the latter, they are illuminated as prescribed for the former. According to some embodiments, the blocking system 602 accesses display information regarding the user device, including the resolution of the physical display (i.e., the size of the pixels). Each physical pixel in the display is illuminated according to the pixels that make up the content item.

[0098] The physical pixels in a display can be subdivided into sub-pixel elements, with each sub-pixel element associated with a specific color. For example, in some displays, each pixel can include a red sub-pixel, a green sub-pixel, and a blue sub-pixel (RGB pixel). The actual color of each sub-pixel and the number of sub-pixels in each pixel can vary based on the display type.

[0099] Each pixel is associated with a pixel vector that indicates how the pixel behaves (color, intensity, etc.). Similarly, each sub-pixel is associated with a sub-pixel value, where the sub-pixel value indicates the intensity of the sub-pixel. The sub-pixel values are derived from the pixel vector of the pixel. For example, an RGB pixel can have a pixel vector that contains three values, where each value is a sub-pixel value associated with a sub-pixel.

[0100] The content modification system 606 modifies a content item to generate a modified content item. The content modification system 606 can access the content item stored in the content store 604. The modified content item includes a set of frames generated based on the content item. The type of modification to the content item (including determining the number of frames in the set of frames) can vary in different embodiments. For example, the number of frames in the set of frames can be determined based on the display refresh rate of the user device and / or the processor capabilities of the user device. The generated modified content item including the set of frames can be stored in the content store 604.

[0101] According to some embodiments, the content modification system 606 generates a set of frames that includes at least a first frame and a second frame. The first frame includes a modified version of the content item, and the second frame includes a solid color. In an example, the first frame contains the content item with increased brightness, and the second frame is all black. In another example, the first frame contains the content item with decreased brightness, and the second frame is all white. There can be additional frames in the set of frames, for example, a third frame of a solid color. Generating the first frame can include other visual modifications to the content item, such as changing the contrast and / or saturation. The type and degree of the content item modification used to generate the first frame can be based on the original brightness of the content item, the original contrast of the content item, the original saturation of the content item, the ambient brightness of the environment around the user device, the display refresh rate of the user device, and / or the processor capabilities of the user device.

[0102] According to some embodiments, the content modification system 606 generates a set of frames by dividing a pixel set of a content item into multiple subsets and allocating them among the frames. The set of frames includes at least a first frame and a second frame. The first frame includes a first subset of the pixels of the content item, and the second frame includes a second subset of the pixels of the content item. In some embodiments, the set of frames may include one or more additional frames, each additional frame containing a subset of the pixels. The pixels in each subset of the pixels may be randomly selected. In some embodiments, the number of pixels in each subset of the pixels is based on a predetermined amount of pixels from the content item to be included in each subset. The predetermined amount of pixels may vary by frame or be equal in each frame. The predetermined amount may be based on the number of frames in the set of frames. In an example, the set of frames includes two frames, and each frame includes half of the pixels from the content item based on the predetermined amount. That is, the first frame includes the first half of the pixels from the content item, and the second frame includes the second half of the pixels. In another example, the predetermined amount for each subset is different for each subset, the set of frames includes two frames, and the first frame contains one-third of the total number of pixels, and the second frame contains two-thirds of the total number of pixels.

[0103] According to some embodiments, the content modification system 606 generates a set of frames by allocating a set of sub-pixels that make up a content item among the frames. The set of frames includes at least a first frame and a second frame. The first frame has a first subset of sub-pixel values, and the second frame has a second subset of sub-pixel values. The set of frames may include additional frames, each additional frame containing a subset of sub-pixel values. Each subset of sub-pixel values may contain sub-pixel values of multiple different colors. The sub-pixel values in each subset of the sub-pixel values may be randomly selected. In some embodiments, the number of sub-pixel values in each subset of the sub-pixel values is a predetermined amount. The predetermined amount of sub-pixel values may vary by frame or be equal in each frame. The predetermined amount may be based on the number of frames in the set of frames.

[0104] The display system 608 provides a modified content item including a set of frames for display on a user device. The display system 608 may communicate with other systems on the server and / or connected client devices (such as user devices, interactive client 104, and interactive server 124). In some embodiments, this may involve sending the modified content item to the user device and instructions for causing the user device to display the content.

[0105] In an example where the set of frames contains two frames, the display system 608 may provide instructions for causing the user device to alternate between displaying the first frame and displaying the second frame. In an example where the set of frames contains n frames, the display system 608 may provide instructions for causing the user device to rotate among displaying the first frame, then the second frame, …… then the nth frame, then the first frame, etc.

[0106] In some embodiments, the instructions provided by the display system 608 specify the rate at which the user device switches between frames. In some embodiments, the display system 608 accesses the display refresh rate and / or the processor capabilities of the user device in order to determine the rate. In an example, the user device has a fast display refresh rate but a slow processor capability. Thus, the display system 608 can generate instructions for display that cause the dynamic display to update more slowly than the display refresh rate so as not to overload the processor capabilities of the user device. In some embodiments, the rate is the display refresh rate of the user device.

[0107] In some embodiments, the rate can vary from frame to frame. That is, each frame is displayed for a predetermined duration. In an example having a first frame and a second frame, the first frame is displayed for a first duration and the second frame is displayed for a second duration. The first duration and the second duration can be the same or can be different. In an example where the first frame is a modified version of a content item and the second frame is a solid color, the second duration can be twice the first duration. That is, the display time of the solid color can be twice that of the modified content item. Thus, the user is more likely to screen capture the solid color compared to the modified content item.

[0108] In an example where the content item is included as part of the content data of a transient message, the display system 608 provides the modified content item for display on the user device as long as the transient message persists. For example, the content data can be a transient message 502 having a message duration parameter 506. After the transient message expires, the modified content item is no longer provided for display on the user device. The display system 608 can work in conjunction with the transient timer system 220 in the messaging system 210 to present the content data as a transient message.

[0109] Figure 7is a flowchart of a method 700 for preventing a user device from capturing a screen of content according to some embodiments. The method 700 may be executed by processing logic, which may include hardware (e.g., a processing device, circuitry, dedicated logic, programmable logic, microcode, hardware of a device, an integrated circuit, etc.), software (e.g., instructions running or executing on a processing device), or a combination thereof. In some embodiments, the method 700 is executed by functional components of the interactive system 100. Although the operations below are described as being executed by a processing device, it should be understood that the operations of the method 700 may not necessarily be executed by the same processing device. Thus, any one or more of the operations of the method 700 may be executed by any one or more of the interactive client 104, the interactive server 124, the communication system 208, or the user device 1106. Similarly, the processing device may be a user device on which the method 700 runs to prevent screen capture.

[0110] Although the processing is shown in a particular order or sequence, the order of the processing may be modified unless otherwise stated. Thus, the illustrated embodiments should be understood only as examples, and the illustrated processing may be executed in a different order and some processing may be executed in parallel. Additionally, one or more of the processing may be omitted in various embodiments. Thus, not all processing is required in each embodiment. Other processing flows are possible.

[0111] At operation 702, the processing device accesses a content item (e.g., from the content store 604). The content item includes visual content. The content item may be part of content data, which may include additional non-visual content and / or metadata. In some embodiments, the content data is a transient message accessed by the processing device. The content item is composed of pixels, and each pixel has an associated pixel vector indicating how the pixel should be illuminated. In some embodiments, each pixel vector includes a plurality of sub-pixel values, and each sub-pixel value is associated with a type of sub-pixel (e.g., color).

[0112] At operation 704, the processing device generates a modified content item based on the content item. The modified content item includes a set of frames. The processing device modifies the content item to generate the modified content item. When generating a set of frames, the processing device generates a first frame and a second frame.

[0113] The set of frames may include any number of additional frames. Thus, the generation of the modified content may also include determining the number of frames to generate and generating that number of frames. The number of frames may be determined based on the display refresh rate of the user device and / or the processor capabilities of the user device.

[0114] At operation 706, the processing device causes the display device of the user device to display a modified content item. When causing the display device to display the modified content item, the processing device causes the user device to alternate between displaying a first frame and a second frame. That is, the user device displays the first frame for a first duration and then displays the second frame for a second duration, then displays the first frame for the first duration, and so on.

[0115] The first duration and the second duration are short enough that they are not easily perceptible to the human eye. For some embodiments, the processing device determines the display refresh rate of the user device and determines the first duration and the second duration based on the display refresh rate. For some embodiments, the processing device determines the processor capabilities of the user device and determines the first duration and the second duration based on the processor capabilities. The first duration and the second duration may be equal to each other or may be different durations.

[0116] As long as the user device is caused to display the content item, the display of the modified content item alternates between the first frame and the second frame. For some embodiments, the amount of time for which the content item is displayed is based on the short timer system 220, and the content item is available for display only during a time-limited period.

[0117] In embodiments where there are additional frames in a group of frames, the display of the modified content item rotates between displaying each frame in the group of frames. When displaying the last frame in the group of frames, the display of the modified content item returns to the first frame in the group of frames.

[0118] Figure 8 It is shown that in some embodiments the method 700 may further include operation 802 and operation 804. Consistent with these embodiments, operation 802 and operation 804 may be performed as part of operation 704 in which the processing device generates the modified content item.

[0119] At operation 802, the processing device generates a first frame that includes a modified version of the content item. Consistent with these embodiments, the processing device generates the first frame by adjusting (e.g., increasing or decreasing) the brightness of the content item, adjusting (e.g., increasing or decreasing) the contrast, adjusting (e.g., increasing or decreasing) the saturation, or adjusting any other visual characteristic of the content item. The manner in which the processing device modifies the content item to generate the first frame is based on any one or more of the following: the original brightness of the content item, the original contrast of the content item, the original saturation of the content item, the ambient brightness of the environment surrounding the user device, the processor capabilities of the user device, and / or the display refresh rate of the user device.

[0120] At operation 804, the processing device generates a second frame that includes a solid color. Consistent with these embodiments, the processing device generates the second frame such that the second frame has the same dimensions as the first frame. All of the pixels of the second frame include the same pixel vector to form a frame of solid color. The solid color (e.g., pixel vector) is determined by the processing device based on the modifications made to the content item to generate the first frame. For example, if the first frame is generated by increasing the brightness of the content item, the second frame is generated as black to offset the increased brightness. Thus, the dynamic display of the set of frames has a perceived brightness similar to the original content item. In addition to the first and second frames discussed above, the frames added to the set of frames can each include a solid color.

[0121] Figure 9 It is shown that in some embodiments, method 700 may further include operation 902 and operation 904. Consistent with these embodiments, operation 902 and operation 904 may be performed as part of operation 704 in which the processing device generates a modified content item.

[0122] Consistent with these embodiments, modifying the content item includes allocating the entire set of pixels that make up the content item among a set of frames. At operation 902, the processing device generates a first frame that includes a first subset of the pixels of the content item. At operation 904, the processing device generates a second frame that includes a second subset of the pixels of the content item. The number of pixels in each subset of pixels may be predetermined or random. The number of pixels in each subset of pixels may be the same or different in each frame. In each subset of pixels, the positioning of the pixels within the content item may be ordered or randomized. Consistent with these embodiments, additional frames may be added to the set of frames, and each of the additional frames includes a subset of pixels.

[0123] Figure 10 It is shown that in some embodiments, method 700 may further include operation 1002 and operation 1004. Consistent with these embodiments, operation 1002 and operation 1004 may be performed as part of operation 704 in which the processing device generates a modified content item.

[0124] Consistent with these embodiments, modifying a content item includes deriving sub-pixel values from a pixel vector of the content item and allocating the set of all sub-pixel values into a group of frames. At operation 1002, a processing device generates a first frame that includes a first subset of the sub-pixel values. At operation 1004, the processing device generates a second frame that includes a second subset of the sub-pixel values. The number of sub-pixel values in each subset of sub-pixel values may be predetermined or random. The number of sub-pixel values in each subset of sub-pixel values may be the same or different in each frame. The physical positioning of the sub-pixels associated with each subset of sub-pixel values within a physical display may be ordered or randomized. Consistent with these embodiments, additional frames may be added to the group of frames, and each additional frame includes a subset of the sub-pixel values.

[0125] Figure 11A An example content item 1102 is shown in accordance with some embodiments. In this illustrative example, content item 1102 is an image depicting a landscape captured by a client device, although content item 1102 can be any image or any other type of visual content, such as a video or one or more of its frames. Content item 1102 may be part of content data. In this illustrative example, the content data is included as part of a short message. The content data may include additional content other than content item 1102, such as audio, text, and metadata. The content data including content item 1102 is stored in content storage 604.

[0126] Figure 11B An example first frame 1104 displayed on user device 1106 is shown in accordance with some embodiments. Content modification system 606 modifies content item 1102 to generate first frame 1104. In this illustrative example, the brightness of content item 1102 is increased to generate first frame 1104.

[0127] In this illustrative example, user device 1106 is a smart phone, although in other examples, user device 1106 can be a laptop computer, a tablet computer, a smart watch, any other type of smart phone, or any other computerized device having a screen that can be used by a user. User device 1106 may be user system 102, interaction client 104, or any other client device.

[0128] User device 1106 displays first frame 1104 for a first duration. In this illustrative example, the first duration is based on the display refresh rate of user device 1106, although in other examples, the first duration may also or alternatively be based on the processor capabilities of user device 1106. After displaying first frame 1104 for the first duration, user device 1106 displays second frame 1108, which is shown in Figure 11C shown.

[0129] Figure 11C Shows an example second frame 1108 displayed on user device 1106 according to some embodiments. The first frame 1104 and the second frame 1108 together form a set of frames. The content modification system 606 modifies the content item 1102 to generate the second frame 1108. In this illustrative example, the second frame 1108 is solid black, although the second frame 1108 can be another solid color. For example, the content modification system 606 can generate a first frame 1104 with reduced brightness and a second frame of pure white.

[0130] The user device 1106 displays the second frame 1108 for a second duration. In this illustrative example, the second duration is equal to twice the display refresh rate of the user device 1106. In some embodiments, the second duration can be based on the display refresh rate of the user device 1106 and / or the processor capabilities. In some cases, the first duration is equal to the second duration.

[0131] After displaying the second frame 1108 for the second duration, the user device 1106 displays the first frame 1104 for a first duration. As long as the user is viewing the content item, the user device 1106 continues to alternate between displaying the first frame 1104 for the first duration and displaying the second frame 1108 for the second duration. In an example where the content item 1102 is included in a transient message, the user device 1106 displays the content as long as it is enabled by the transient timer system 220. For example, if the content item 1102 is part of the transient message 502, the transient message 502 is no longer available after the time of the message duration parameter 506 has passed.

[0132] The content item 1102 is displayed to the user as a set of frames that alternate between the first frame 1104 and the second frame 1108 in a dynamic display manner, preventing the content item from being screen captured. If the user attempts to screen capture, they are more likely to capture the solid black second frame 1108. In the case where the user captures the first frame 1104, the content item 1102 will have increased brightness and will look different from Figure 11A the static content item 1102 with normal brightness in

[0133] Figure 12A Shows an example first frame 1202 displayed on user device 1106 according to some embodiments. The content item 1102 has been modified by the content modification system 606 to generate the first frame 1104. In this illustrative example, the first frame 1202 contains a first subset of the pixels of the content item 1102. The remaining pixels in the first frame 1202 are solid colors, in this case black.

[0134] User device 1106 displays a first frame 1202 for a first duration. In this illustrative example, the first duration is based on the display refresh rate of user device 1106, although in other examples, the first duration may alternatively or additionally be based on the processor capabilities of user device 1106. After displaying the first frame 1202 for the first duration, user device 1106 displays a second frame 1204, which is shown in Figure 12B as shown.

[0135] Figure 12B FIG. shows an example second frame 1204 displayed on user device 1106 in accordance with some embodiments. Content modification system 606 modifies content item 1102 to generate second frame 1204. In this illustrative example, second frame 1204 includes a second subset of the pixels of content item 1102. The remaining pixels in second frame 1204 are solid color, which in this case is black.

[0136] User device 1106 displays second frame 1204 for a second duration. In this illustrative example, the second duration is based on the display refresh rate of user device 1106, although in other examples, the second duration may alternatively or additionally be based on the processor capabilities of user device 1106. After displaying the second frame 1204 for the second duration, user device 1106 displays a third frame 1206, which is shown in Figure 12C as shown.

[0137] Figure 12C FIG. shows an example third frame 1206 displayed on user device 1106 in accordance with some embodiments. Content modification system 606 modifies content item 1102 to generate third frame 1206. In this illustrative example, third frame 1206 includes a third subset of the pixels of content item 1102. The remaining pixels in third frame 1206 are solid color, which in this case is black.

[0138] User device 1106 displays third frame 1206 for a third duration. In this illustrative example, the third duration is based on the display refresh rate of user device 1106, although in other examples, the third duration may alternatively or additionally be based on the processor capabilities of user device 1106. After displaying the third frame 1206 for the first duration, user device 1106 returns to displaying the first frame 1202.

[0139] As long as the user is viewing the content item, user device 1106 continues to rotate through displaying the first frame 1202 for the first duration, the second frame 1204 for the second duration, and the third frame 1206 for the third duration, or in the case where the content item is included as part of a transient message, user device 1106 displays the content as long as it is enabled by transient timer system 220.

[0140] The first frame 1202, the second frame 1204, and the third frame 1206 together form a set of frames. In this example, based on a predetermined amount of pixels associated with each frame, each subset of pixels in each frame in the set of frames contains one-third of the total number of pixels in the content item 1102. For other examples, the number of pixels in each subset of pixels can vary from frame to frame or can be randomized. Additionally, the set of pixels that make up the content item 1102 is distributed among the set of frames. That is, each pixel in the content item 1102 is found in the first subset of pixels, the second subset of pixels, or the third subset of pixels. Thus, the dynamic display of the set of frames appears to the human eye as the complete content item 1102.

[0141] The first frame 1202, the second frame 1204, and the third frame 1206 each contain a subset of pixels at predetermined locations within the content item 1102. That is, the subsets of pixels are ordered. In other embodiments, the pixels in each subset of pixels are random. That is, the content modification system 606 randomizes the selection of pixels for each frame. In some such embodiments, the content modification system 606 randomly selects a predetermined amount of pixels to be present in each subset of pixels.

[0142] For some embodiments, there can be fewer or more frames in a set of frames than Figure 12A , Figure 12B and Figure 12C shown in the frames. The predetermined amount of pixels in each frame can be calculated based on the number of frames in the set of frames. The number of frames in the set of frames can be determined by the blocking system 602 based on the display refresh rate and / or the processor capabilities of the user device 1106. For example, the blocking system 602 determines that the user device 1106 has a high display refresh rate and high processor capabilities, and determines that the set of frames has a total of five frames. Thus, the content modification system 606 determines that each frame contains one-fifth of the total number of pixels in the content item 1102. Such a calculation by the blocking system 602 is based on what speed of refreshing the frames is imperceptible to the human eye.

[0143] The content item 1102 is displayed to the user as a set of frames that rotate between the first frame 1202, the second frame 1204, and the third frame 1206 in a dynamic display manner, blocking the content item from being screen captured. If the user performs a screen capture, they will only capture one-third of the total pixels that make up the content item 1102. As can be seen from Figure 12A , Figure 12B and Figure 12C , it is difficult to recognize the content item 1102 from one-third of the pixels. Thus, modifying and dynamically displaying the content blocks screen capture.

[0144] Figure 13AShows a pixel set 1310 and its sub-pixels according to some embodiments. Each pixel in the illustrative pixel set 1310 includes a red sub-pixel, a green sub-pixel, and a blue sub-pixel. For example, a single pixel 1302 has a red sub-pixel 1302R, a green sub-pixel 1302G, and a blue sub-pixel 1302B. The pixel set 1310 can be part or all of a display on a user device (such as user device 1106).

[0145] The color displayed by each pixel in the pixel set 1310 is based on a pixel vector. Each pixel vector can be further subdivided into at least three sub-pixel values. The sub-pixel values indicate the intensity of the corresponding sub-pixel to that sub-pixel. For example, a single pixel 1302 can receive a pixel vector indicating blue that contains three sub-pixel values (0, 0, 255). The red sub-pixel 1302R and the green sub-pixel 1302G remain off (i.e., illuminated with a value of 0), and the blue sub-pixel 1002B is illuminated with maximum intensity (i.e., illuminated with a value of 255).

[0146] Figure 13B Shows an example first frame 1312 at the pixel level according to some embodiments. The content modification system 606 generates the first frame 1312 by modifying the content item 1102. In this example, the first frame 1312 includes a first subset of sub-pixel values selected from the set of pixel vectors of the content item 1102. In this illustrative example, the first subset of sub-pixel values is associated with the following sub-pixels: blue sub-pixel 1301B, red sub-pixel 1302R, green sub-pixel 1302G, red sub-pixel 1303R, blue sub-pixel 1303B, blue sub-pixel 1305B, blue sub-pixel 1306B, red sub-pixel 1307R, and green sub-pixel 1309G. The remaining sub-pixels in the pixel set 1310 that make up the first frame 1312 are a solid color, in this case black. That is, the blue sub-pixel 1301B is illuminated blue based on the associated sub-pixel value, while the red sub-pixel 1301R and the green sub-pixel 1301G are black.

[0147] The user device displays the first frame 1312 for a first duration. In this example, the first duration is based on the display refresh rate of the user device, although in other examples, the first duration can also or alternatively be based on the processor capabilities of the user device. After displaying the first frame 1312 for the first duration, the user device displays a second frame 1314, as Figure 13C shown.

[0148] Figure 13CShows an example second frame 1314 at the pixel level according to some embodiments. The content modification system 606 generates the second frame 1314 by modifying the content item 1102. As shown, the second frame 1314 includes a second subset of sub-pixel values selected from the pixel vector set of the content item 1102. In this example, the second subset of sub-pixel values is associated with the following sub-pixels: red sub-pixel 1301R, blue sub-pixel 1302B, red sub-pixel 1304R, blue sub-pixel 1304B, green sub-pixel 1305G, red sub-pixel 1308R, green sub-pixel 1308G, blue sub-pixel 1308B, and blue sub-pixel 1309B. The remaining sub-pixels in the pixel set 1310 that make up the second frame 1314 are solid colors, which in this case is black. That is, the red sub-pixel 1301R is illuminated red based on the associated sub-pixel value, while the green sub-pixel 1301G and the blue sub-pixel 1301B are turned off.

[0149] The user device displays the second frame 1314 for a second duration. In this example, the second duration is based on the display refresh rate of the user device, although in other examples, the second duration may also or alternatively be based on the processor capabilities of the user device. After displaying the second frame 1314 for the second duration, the user device displays the third frame 1316, as Figure 13D shown.

[0150] Figure 13D Shows an example third frame 1316 at the pixel level according to some embodiments. The content modification system 606 generates the third frame 1316 by modifying the content item 1102. In this example, the third frame 1316 includes a third subset of sub-pixel values selected from the pixel vector set of the content item 1102. In this example, the third subset of sub-pixel values is associated with the following sub-pixels: green sub-pixel 1301G, green sub-pixel 1303G, green sub-pixel 1304G, red sub-pixel 1305R, red sub-pixel 1306R, green sub-pixel 1306G, green sub-pixel 1307G, blue sub-pixel 1307B, red sub-pixel 1309R. The remaining sub-pixels in the pixel set 1310 that make up the third frame 1316 are solid colors, which in this case is black. That is, the green sub-pixel 1301G is illuminated green based on the associated sub-pixel value, while the red sub-pixel 1301R and the blue sub-pixel 1301B are turned off.

[0151] The user device displays the third frame 1316 for a third duration. In this example, the third duration is based on the display refresh rate of the user device, although in other examples, the third duration may also or alternatively be based on the processor capabilities of the user device. After displaying the third frame 1316 for the third duration, the user device displays the first frame 1312.

[0152] The first frame 1312, the second frame 1314, and the third frame 1316 together form a set of frames. In this illustrative example, each subset of sub-pixel values of each frame in a set of frames contains one-third of the total number of sub-pixels in the pixel set 1310. That is, one-third is the predetermined amount of sub-pixels in each subset of sub-pixels. In other examples, the amount of sub-pixel values in each subset of sub-pixel values can vary from frame to frame or can be randomized. Additionally, the set of sub-pixel values that make up the pixel vector associated with the pixel set 1310 is distributed among a set of frames. That is, each sub-pixel in the pixel set 1310 is illuminated in the first frame 1312, the second frame 1314, or the third frame 1316. Thus, the dynamic display of a set of frames appears as a complete content item 1102 to the human eye.

[0153] In some embodiments, the content modification system 606 can identify a first portion of the sub-pixels in the content item that correspond to a first type of sub-pixel value (e.g., red sub-pixels) in the pixel vector, identify a second portion of the sub-pixels in the content item that correspond to a second type of sub-pixel value (e.g., green sub-pixels) in the pixel vector, and identify a third portion of the pixels in the content item that correspond to a third type of sub-pixel value (e.g., blue) in the pixel vector. That is, the content modification system 606 subdivides the pixel vector by sub-pixel value type (e.g., the color of the sub-pixels). The content modification system 606 generates a first subset of pixel values by selecting a first number of sub-pixel values from the first portion of the sub-pixel values (e.g., red), a second number of sub-pixel values from the second portion of the sub-pixel values (e.g., green), and a third number of sub-pixel values from the third portion of the sub-pixel values (e.g., blue). For example, the first subset of sub-pixel values includes a first number of red sub-pixel values, a second number of green sub-pixel values, and a third number of blue sub-pixel values. In the first frame 1312, there are three red sub-pixel values, two green sub-pixel values, and four blue sub-pixel values. That is, there are a total of 9 illuminated sub-pixels in the first frame 1312.

[0154] Similarly, the content modification system 606 generates a second subset of sub-pixel values by selecting a fourth number of sub-pixel values from the first portion of the sub-pixel values, a fifth number of sub-pixel values from the second portion of the sub-pixel values, and a sixth number of sub-pixel values from the first portion of the sub-pixel values. For example, the first subset of sub-pixel values includes a fourth number of red sub-pixel values, a fifth number of green sub-pixel values, and a sixth number of blue sub-pixel values. In the second frame 1314, there are three red sub-pixel values, two green sub-pixel values, and four blue sub-pixel values. There are a total of 9 illuminated sub-pixels in the second frame 1314.

[0155] Content modification system 606 generates a third subset of sub-pixel values by selecting a seventh number of sub-pixel values from a first portion of the sub-pixel values, an eighth number of sub-pixel values from a second portion of the sub-pixel values, and a ninth number of sub-pixel values from the first portion of the sub-pixel values. For example, the third subset of sub-pixel values includes a seventh number of red sub-pixel values, an eighth number of green sub-pixel values, and a ninth number of blue sub-pixel values. In the third frame 1316, there are three red sub-pixel values, five green sub-pixel values, and one blue sub-pixel value. There are a total of 9 illuminated sub-pixels in the third frame 1316.

[0156] The first frame 1312, the second frame 1314, and the third frame 1316 each contain a subset of sub-pixel values at randomly positioned locations within the pixel set 1310. That is, the subsets of sub-pixel values are random. In some embodiments, the content modification system 606 randomly selects a random number of sub-pixel values to be in each subset of sub-pixel values. In other embodiments, the positioning of the sub-pixels associated with each subset of sub-pixel values is ordered. That is, the content modification system 606 selects sub-pixel values for sub-pixels at predetermined positions within the pixel set 1310 for each frame, similar to the ordered selection of pixels in Figure 12A , Figure 12B and Figure 12C .

[0157] According to some embodiments, a predetermined amount of sub-pixels in each frame is calculated based on the number of frames in a group of frames. The number of frames in a group of frames can be determined by the blocking system 602 based on the display refresh rate and / or the processor capabilities of the user device displaying the pixel set 1310. In the examples of Figure 13B , Figure 13C and Figure 13D , the blocking system 602 determines that the pixels need to be illuminated one-third of the time in order to faithfully reproduce the image for the human eye. Thus, the blocking system 602 determines that a group of frames has a total of three frames. Accordingly, the content modification system 606 determines that each frame contains one-third of the total number of sub-pixels in the pixel set 1310 that make up the content item 1102. Such calculations performed by the blocking system 602 are based on a frame refresh rate that is imperceptible to the human eye.

[0158] The pixel set 1310 is subdivided into subsets of sub-pixel values in each frame such that a finer-grained level of blurring of the content item 1102 can be achieved to protect it from screen capture. If a user performs a screen capture, they will only capture one-third of all the sub-pixels that make up the content item 1102, thereby creating a screen capture with significantly altered coloring. A screen capture of any one of the first frame 1312, the second frame 1314, or the third frame 1316 will not look like the static content item 1102. Thus, modifying and dynamically displaying the content item 1102 in accordance with this illustrative example and related embodiments foils screen capture.

[0159] Figure 14 is a diagrammatic representation of a machine 1400 within which instructions 1402 (e.g., software, program, application, applet, app, or other executable code) can be executed to cause the machine 1400 to perform any one or more of the methods discussed herein. For example, the instructions 1402 can cause the machine 1400 to perform any one or more of the methods described herein. The instructions 1402 transform the general unprogrammed machine 1400 into a particular machine 1400 programmed to perform the described and illustrated functions in the described manner. The machine 1400 can operate as a stand-alone device or can be coupled (e.g., networked) to other machines. In a networked deployment, the machine 1400 can operate in a server-client network environment as a server machine or a client machine, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine 1400 can include, but is not limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a personal digital assistant (PDA), an entertainment media system, a cellular phone, a smartphone, a mobile device, a wearable device (e.g., a smartwatch), a smart home device (e.g., a smart appliance), other smart devices, a web device, a network router, a network switch, a network bridge, or any machine capable of sequentially or otherwise executing the instructions 1402 specifying the actions to be taken by the machine 1400. Further, although a single machine 1400 is shown, the term "machine" shall also be taken to include a collection of machines that individually or jointly execute the instructions 1402 to perform any one or more of the methods discussed herein. For example, the machine 1400 can include the user system 102 or any one of the multiple server devices forming part of the interactive server system 110. In some examples, the machine 1400 can also include both a client system and a server system, where certain operations of a particular method or algorithm are executed on the server side and certain operations of the particular method or algorithm are executed on the client side.

[0160] Machine 1400 may include a processor 1404, a memory 1406, and input / output (I / O) components 1408 that may be configured to communicate with each other via a bus 1410. In an example, the processor 1404 (e.g., a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a radio frequency integrated circuit (RFIC), another processor, or any suitable combination thereof) may include, for example, a processor 1412 and a processor 1414 that execute instructions 1402. The term "processor" is intended to include multi-core processors, which may include two or more independent processors (sometimes referred to as "cores") that may execute instructions simultaneously. Although Figure 14 multiple processors 1404 are shown, machine 1400 may include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core processor), multiple processors with a single core, multiple processors with multiple cores, or any combination thereof.

[0161] The memory 1406 includes a main memory 1416, a static memory 1418, and a storage unit 1420, all of which may be accessed by the processor 1404 via the bus 1410. The main memory 1406, the static memory 1418, and the storage unit 1420 store instructions 1402 that implement any one or more of the methods or functions described herein. The instructions 1402 may also reside completely or partially within the main memory 1416, within the static memory 1418, within the storage unit 1420, within a machine-readable medium 1422 within the storage unit 1420, within at least one of the processors 1404 (e.g., within a cache memory of the processor), or any suitable combination thereof during execution by the machine 1400.

[0162] The I / O components 1408 may include various components for receiving input, providing output, generating output, sending information, exchanging information, capturing measurements, etc. The specific I / O components 1408 included in a particular machine will depend on the type of the machine. For example, a portable machine such as a mobile phone may include a touch input device or other such input mechanism, while a headless server machine is less likely to include such a touch input device. It should be appreciated that the I / O components 1408 may include Figure 14Many other components not shown. In various examples, I / O component 1408 can include user output component 1424 and user input component 1426. User output component 1424 can include visual components (e.g., a display such as a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)), acoustic components (e.g., speakers), haptic components (e.g., a vibration motor, a resistance mechanism), other signal generators, etc. User input component 1426 can include alphanumeric input components (e.g., a keyboard, a touch screen configured to receive alphanumeric input, an optical keyboard, or other alphanumeric input components), point-based input components (e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, or other pointing instruments), haptic input components (e.g., physical buttons, a touch screen that provides the location and force of a touch or touch gesture, or other haptic input components), audio input components (e.g., a microphone), etc.

[0163] In other examples, I / O component 1408 can include biometric component 1428, motion component 1430, environmental component 1432, or location component 1434, as well as a wide range of other components. For example, biometric component 1428 includes components for detecting expressions (e.g., hand expressions, facial expressions, voice expressions, body postures, or eye tracking), measuring biometric signals (e.g., blood pressure, heart rate, body temperature, sweating, or brain waves), identifying people (e.g., voice recognition, retina recognition, face recognition, fingerprint recognition, or electroencephalogram-based recognition), etc. Motion component 1430 includes acceleration sensor components (e.g., accelerometers), gravity sensor components, rotational sensor components (e.g., gyroscopes).

[0164] Environmental component 1432 includes, for example, one or more camera devices (with still image / photo and video capabilities), lighting sensor components (e.g., photometers), temperature sensor components (e.g., one or more thermometers that detect ambient temperature), humidity sensor components, pressure sensor components (e.g., barometers), acoustic sensor components (e.g., one or more microphones that detect background noise), proximity sensor components (e.g., infrared sensors that detect nearby objects), gas sensors (e.g., gas detection sensors for detecting the concentration of hazardous gases for safety or for measuring pollutants in the atmosphere), or other components that can provide an indication, measurement, or signal corresponding to the surrounding physical environment.

[0165] Regarding the imaging device, the user system 102 may have an imaging device system that includes, for example, a front imaging device on the front surface of the user system 102 and a rear imaging device on the rear surface of the user system 102. The front imaging device may be used, for example, to capture still images and videos of the user of the user system 102 (e.g., "selfies"), which may then be enhanced with the above-described enhancement data (e.g., filters). The rear imaging device may be used, for example, to capture still images and videos in a more conventional imaging device mode, and these images are similarly enhanced with enhancement data. In addition to the front imaging device and the rear imaging device, the user system 102 may also include a 360° imaging device for capturing 360° photos and videos.

[0166] In addition, the imaging device system of the user system 102 may include a dual rear imaging device (e.g., a main imaging device and a depth sensing imaging device), or even a triple, quadruple, or quintuple rear imaging device configuration on the front and rear sides of the user system 102. For example, these multiple imaging device systems may include a wide-angle imaging device, an ultra-wide-angle imaging device, a telephoto imaging device, a macro imaging device, and a depth sensor.

[0167] The location component 1434 includes a positioning sensor component (e.g., a GPS receiver component), an altitude sensor component (e.g., an altimeter or barometer that detects air pressure, from which altitude can be obtained), an orientation sensor component (e.g., a magnetometer), etc.

[0168] Various techniques may be used to implement communication. The I / O component 1408 also includes a communication component 1436 that is operable to couple the machine 1400 to the network 1438 or the device 1440 via a respective coupling or connection. For example, the communication component 1436 may include a network interface component that interfaces with the network 1438 or another suitable device. In another example, the communication component 1436 may include a wired communication component, a wireless communication component, a cellular communication component, a near field communication (NFC) component, components (e.g., low power consumption), components and other communication components for providing communication via other forms. The device 1440 may be any other machine or any of a variety of peripheral devices (e.g., a peripheral device coupled via USB).

[0169] In addition, the communication component 1436 can detect an identifier, or include components operable to detect an identifier. For example, the communication component 1436 can include a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., an optical sensor for detecting one-dimensional barcodes such as Universal Product Code (UPC) barcodes, multi-dimensional barcodes such as Quick Response (QR) codes, Aztec codes, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D barcodes, and other optical codes), or an acoustic detection component (e.g., a microphone for identifying a tagged audio signal). Additionally, various information can be obtained via the communication component 1436, such as a location via Internet Protocol (IP) geolocation, a location via signal triangulation, a location via detecting an NFC beacon signal that can indicate a specific location, etc.

[0170] Various memories (e.g., main memory 1416, static memory 1418, and the memory of the processor 1404) and the storage unit 1420 can store one or more sets of instructions and data structures (e.g., software) implemented or used by any one or more of the methods or functions described herein. These instructions (e.g., instructions 1402), when executed by the processor 1404, cause various operations to implement the disclosed examples.

[0171] The instructions 1402 can be sent or received via a network interface device (e.g., the network interface component included in the communication component 1436) using a transmission medium and using any one of several well-known transmission protocols (e.g., Hypertext Transfer Protocol (HTTP)) over the network 1438. Similarly, the instructions 1402 can be sent or received using a transmission medium via a coupling (e.g., a peer-to-peer coupling) to the device 1440.

[0172] Figure 15 FIG. 1500 is a block diagram showing a software architecture 1502 that can be installed on any one or more of the devices described herein. The software architecture 1502 is supported by hardware such as a machine 1504 including a processor 1506, a memory 1508, and I / O components 1510. In this example, the software architecture 1502 can be conceptualized as a stack of layers, where each layer provides a specific function. The software architecture 1502 includes layers such as an operating system 1512, libraries 1514, frameworks 1516, and applications 1518. In operation, the application 1518 activates API calls 1520 through the software stack and receives messages 1522 in response to the API calls 1520.

[0173] The operating system 1512 manages hardware resources and provides common services. The operating system 1512 includes, for example, a kernel 1524, services 1526, and drivers 1528. The kernel 1524 acts as an abstraction layer between the hardware layer and other software layers. For example, the kernel 1524 provides memory management, processor management (e.g., scheduling), component management, networking, and security settings, among other functions. The services 1526 can provide other common services for other software layers. The drivers 1528 are responsible for controlling or interfacing with the underlying hardware. For example, the drivers 1528 can include a display driver, a camera device driver, or a low-power driver, a flash driver, a serial communication driver (e.g., a USB driver), drivers, an audio driver, a power management driver, and so on.

[0174] The library 1514 provides common low-level infrastructure used by the applications 1518. The library 1514 can include a system library 1530 (e.g., a C standard library), which provides functions such as memory allocation functions, string manipulation functions, mathematical functions, and so on. Additionally, the library 1514 can include an API library 1532, such as a media library (e.g., a library for supporting the presentation and manipulation of various media formats, such as Moving Picture Experts Group-4 (MPEG4), Advanced Video Coding (H.264 or AVC), Moving Picture Experts Group Layer-3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, Joint Photographic Experts Group (JPEG or JPG), or Portable Network Graphics (PNG)), a graphics library (e.g., the OpenGL framework for 2D and 3D rendering in graphical content on a display), a database library (e.g., SQLite, which provides various relational database functions), a web library (e.g., WebKit, which provides web browsing functions), and so on. The library 1514 can also include various other libraries 1534 to provide many other APIs to the applications 1518.

[0175] The framework 1516 provides common high-level infrastructure used by the applications 1518. For example, the framework 1516 provides various Graphical User Interface (GUI) functions, advanced resource management, and advanced location services. The framework 1516 can provide a wide range of other APIs that can be used by the applications 1518, some of which can be specific to a particular operating system or platform.

[0176] In an example, the application 1518 can include a home application 1536, a contacts application 1538, a browser application 1540, a book reader application 1542, a location application 1544, a media application 1546, a messaging application 1548, a gaming application 1550, and various other applications such as third-party applications 1552. The application 1518 is a program that executes functions defined in a program. One or more of the applications 1518 can be created using various programming languages that are structured in various ways, such as object-oriented programming languages (e.g., Objective-C, Java, or C++) or procedural programming languages (e.g., C language or assembly language). In a particular example, the third-party application 1552 (e.g., an application developed using an ANDROID TM or IOS TM software development kit (SDK) by an entity other than the vendor of a particular platform) can be mobile software that runs on a mobile operating system such as IOS TM , ANDROID TM , a mobile operating system of a mobile phone, or another mobile operating system. In this example, the third-party application 1552 can activate an API call 1520 provided by the operating system 1512 to facilitate the functions described herein.

[0177] The embodiments presented herein provide systems and methods for improving the blocking of content from being screen captured. The embodiments presented herein are capable of blocking screen captures without relying on the underlying operating system to prevent screen captures. Additionally, the embodiments of content modification and dynamic display presented herein block screen captures while making the content appear static to the human eye. The embodiments presented herein are useful in many use cases, including but not limited to transient messaging and UIs with sensitive content.

[0178] As used herein, the term "comprising" followed by one or more elements does not exclude the presence of one or more additional elements. The term "or" should be interpreted as a non-exclusive "or" (e.g., "A or B" can mean "A", "B", or "A and B"), rather than an exclusive "or". Unless a single instance is explicitly specified, the article "a" or "an" refers to one or more instances of the element that follows.

[0179] The accompanying drawings and the written specification describe example embodiments of the present disclosure and should not be construed as listing the essential features of the present disclosure. The scope of the present invention should be interpreted in accordance with any claims issued in a patent that includes this specification.

[0180] "Enhance" means to annotate or otherwise modify or edit content.

[0181] "Brightness" refers to the intensity of a pixel, and, where applicable, the intensity of a sub-pixel. Brightness can be decreased by reducing the intensity of a pixel. Brightness can be increased by increasing the intensity of a pixel.

[0182] "Carrier signal" refers to any non-tangible medium that can store, encode, or carry instructions executable by a machine and includes digital or analog communication signals or other non-tangible media to facilitate the communication of such instructions. Instructions can be sent or received over a network via a network interface device using a transmission medium.

[0183] "Client device" refers to any machine that interfaces with a communication network to obtain resources from one or more server systems or other client devices. A client device can be, but is not limited to, a mobile phone, desktop computer, laptop computer, portable digital assistant (PDA), smartphone, tablet computer, ultrabook, netbook, laptop, multiprocessor system, microprocessor-based or programmable consumer electronics, game console, set-top box, or any other communication device that a user can use to access a network.

[0184] "Communication network" refers to one or more portions of a network, which can be an ad hoc network, intranet, extranet, virtual private network (VPN), local area network (LAN), wireless LAN (WLAN), wide area network (WAN), wireless WAN (WWAN), metropolitan area network (MAN), the Internet, a portion of the Internet, a portion of the public switched telephone network (PSTN), plain old telephone service (POTS) network, cellular telephone network, wireless network, network, other types of networks, or a combination of two or more such networks. For example, a network or a portion of a network can include a wireless network or a cellular network, and the coupling can be a code division multiple access (CDMA) connection, global system for mobile communications (GSM) connection, or other type of cellular or wireless coupling. In this example, the coupling can implement any data transfer technology among various types of data transfer technologies, such as single carrier radio transmission technology (1xRTT), evolved data optimized (EVDO) technology, general packet radio service (GPRS) technology, enhanced data rate GSM evolution (EDGE) technology, 3rd Generation Partnership Project (3GPP) including 3G, 4th Generation Wireless (4G) network, universal mobile telecommunications system (UMTS), high speed packet access (HSPA), worldwide interoperability for microwave access (WiMAX), long term evolution (LTE) standard, other data transfer technologies defined by various standards setting organizations, other long distance protocols, or other data transfer technologies.

[0185] "Component" refers to, for example, a logical, physical entity or device having boundaries defined by, for example, function or subroutine calls, branch points, APIs, or other technologies that provide partitioning or modularization of a particular processing or control function. A component can be combined with other components via its interfaces to perform machine processing. A component can be an encapsulated functional hardware unit designed to be used with other components and a program of a particular function that generally performs related functions. A component can constitute a software component (e.g., code embodied on a machine-readable medium) or a hardware component. A "hardware component" is a tangible unit capable of performing certain operations and can be configured or arranged in some physical manner. In various examples, one or more computer systems (e.g., a stand-alone computer system, a client computer system, or a server computer system) or one or more hardware components of a computer system (e.g., a processor or a group of processors) can be configured by software (e.g., an application or a portion of an application) to operate to perform certain operations as described herein as a hardware component. A hardware component can also be implemented mechanically, electronically, or in any suitable combination thereof. For example, a hardware component can include dedicated circuitry or logic permanently configured to perform certain operations. A hardware component can be a dedicated processor, such as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC). A hardware component can also include programmable logic or circuitry temporarily configured to perform certain operations by software. For example, a hardware component can include software executed by a general purpose processor or other programmable processor. Once configured by such software, the hardware component becomes a particular machine (or a particular component of a machine) that is uniquely customized to perform the configured function and is no longer a general purpose processor. It will be appreciated that a decision can be made, for cost and time considerations, as to whether to implement a hardware component mechanically in dedicated and permanently configured circuitry or in circuitry temporarily configured (e.g., by software). Thus, the phrase "hardware component" (or "hardware-implemented component") should be understood to include a tangible entity, i.e., an entity physically constructed, permanently configured (e.g., hard-wired) or temporarily configured (e.g., programmed) to operate in some manner or to perform certain operations described herein. Considering an example where a hardware component is temporarily configured (e.g., programmed), it is not necessary to configure or instantiate each hardware component at any given time. For example, in a case where a hardware component includes a general purpose processor configured by software to be a dedicated processor, the general purpose processor can be configured at different times to be respective different dedicated processors (e.g., including different hardware components). The software accordingly configures one or more particular processors to, for example, constitute a particular hardware component at one moment and a different hardware component at a different moment. A hardware component can provide information to and receive information from other hardware components. Thus, the described hardware components can be considered communicatively coupled.In the presence of multiple hardware components, communication can be achieved through signal transmission between or among two or more hardware components (e.g., via appropriate circuitry and buses). In examples where multiple hardware components are configured or instantiated at different times, communication between such hardware components can be achieved, for example, by storing information in a memory structure accessible to the multiple hardware components and retrieving the information from the memory structure. For example, one hardware component can perform an operation and store the output of the operation in a memory device communicatively coupled thereto. Then, another hardware component can access the memory device at a subsequent time to retrieve the stored output and process it. Hardware components can also initiate communication with input or output devices and can operate on resources (e.g., a collection of information). The various operations of the example methods described herein can be performed, at least in part, by one or more processors temporarily configured (e.g., via software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors can constitute processor-implemented components that operate to perform one or more of the operations or functions described herein. As used herein, a "processor-implemented component" refers to a hardware component implemented using one or more processors. Similarly, the methods described herein can be at least in part processor-implemented, where one or more particular processors are examples of hardware. For example, at least some of the operations of a method can be performed by one or more processors or processor-implemented components. Additionally, one or more processors can also operate to support the execution of relevant operations in a "cloud computing" environment or as a "software as a service" (SaaS) operation. For example, at least some of the operations can be performed by a group of computers (as an example of machines including processors), where the operations are accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., an API). The execution of certain operations can be distributed among processors, not residing only within a single machine but deployed across multiple machines. In some examples, the processor or processor-implemented components can be located in a single geographical location (e.g., within a home environment, an office environment, or a server farm). In other examples, the processor or processor-implemented components can be distributed across multiple geographical locations.

[0186] "Computer-readable storage medium" refers to both, for example, machine storage media and transmission media. Thus, these terms include both storage devices / media and carrier / modulated data signals. The terms "machine-readable medium", "computer-readable medium", and "device-readable medium" mean the same thing and can be used interchangeably in this disclosure.

[0187] "Content data" refers to any content that a user can send or receive via a user device. For example, content data can be image data, video data, audio data, text data, metadata, one or more media overlays, or any other content that a user can send or receive via a user device, or any combination thereof. In one example, content data can be a static image overlaid with text and music. In another example, content data is a transient message. Content data can be visual content (such as a content item) or otherwise include visual content.

[0188] "Content item" refers to the visual portion of the content data that is to be blocked from screen capture. A content item can be image data, video data, text, a media overlay, or any other visual content. In the previous example where the content data is a static image overlaid with text and music, the static image with text is the content item.

[0189] "Display refresh rate" refers to the frequency at which a display updates the visual content being shown. The display refresh rate can be calculated by the number of times the display updates per second and is presented in Hz. Many conventional displays have a display refresh rate of 60 Hz. However, a display can have a faster or slower display refresh rate. A faster display refresh rate enables a user to perceive video or other updated visual content more smoothly.

[0190] "Transient message" refers, for example, to a message that can be accessed within a time - limited duration. A transient message can be text, an image, a video, etc. The access time of a transient message can be set by the message sender. Alternatively, the access time can be a default setting or a setting specified by the recipient. Regardless of the setting technique, the message is temporary.

[0191] "Frame" refers to static visual data for display. For example, a video can be described as a sequence of frames. The visual data in a frame may have been modified from its original form. A frame can be displayed on a user device.

[0192] "Machine storage medium" means, for example, one or more storage devices and media (e.g., centralized or distributed databases, and associated caches and servers) that store executable instructions, routines, and data. Accordingly, the term should be regarded as including, but not limited to, solid-state memory as well as optical and magnetic media, including memory internal or external to a processor. Specific examples of machine storage media, computer storage media, and device storage media include: non-volatile memory, including, for example, semiconductor memory devices such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), FPGA, and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The terms "machine storage medium", "device storage medium", and "computer storage medium" mean the same thing and may be used interchangeably in this disclosure. The terms "machine storage medium", "computer storage medium", and "device storage medium" expressly exclude carrier waves, modulated data signals, and other such media, at least some of which are subsumed in the term "signal medium".

[0193] "Media overlay" means text or image data that can be overlaid on top of a photograph or video stream captured by a video stream. In some examples, the media overlay can be a location overlay (e.g., Venice Beach), a name of a live event, or a merchant name overlay (e.g., Beach Café).

[0194] "Non-transitory computer-readable storage medium" means, for example, a tangible medium capable of storing, encoding, or carrying instructions executable by a machine.

[0195] "Pixel" means a picture element in digital visual content. That is, visual content is composed of elementary pixels. "Pixel" can also refer to the physical display element of a display device. Pixels can present colors based on associated pixel vectors. In some cases, a physical pixel contains sub-pixel elements capable of displaying a single color. When visual content is provided for display, the display illuminates each pixel according to the pixel vector data associated with the pixel. If the pixel has sub-pixels, each sub-pixel is illuminated according to the intensity of the pixel vector data associated with each sub-pixel element.

[0196] "Pixel vector" refers to data that describes how pixel brightness is and / or what color the pixel should be. Although the term "vector" is used herein, each pixel vector can be a vector, scalar, or bitwise value. For example, in a binary image, each pixel has a one-bit pixel vector that indicates whether the pixel is on or off. In a grayscale image, each pixel can have an eight-bit pixel vector that gives a range of possible grayscale values from 0 to 255. In a color image, each physical pixel can have subpixels, and the pixel vector can be represented as a subpixel value for each subpixel. In one example, a pixel has red, green, and blue (RGB) subpixels, and each subpixel is associated with a subpixel value that is an eight-bit value from 0 to 255 indicating the subpixel color intensity. In such an example, the pixel vector is a vector of three values, one subpixel value for each subpixel.

[0197] "A set of frames" refers to two or more frames. A set of frames can be displayed on a user device. A set of frames can be associated with a short message such that the set of frames is only available for display for a time-limited duration. A set of frames can be associated with a specific ordering of frames for display.

[0198] "Signal medium" refers to any non-transitory medium that can store, encode, or carry instructions executed by a machine, and "signal medium" includes digital or analog communication signals or other non-transitory medium to facilitate the communication of software or data. The term "signal medium" should be regarded as including any form of modulated data signal, carrier wave, etc. The term "modulated data signal" means a signal whose one or more characteristics in its properties are set or changed in a manner that encodes information in the signal. The terms "transmission medium" and "signal medium" mean the same thing and can be used interchangeably in this disclosure.

[0199] "Solid color" refers to a uniform color. For example, a solid color can be black. A solid color can be generated by a pixel vector of a uniform value. In embodiments using subpixel values, a solid color can be generated by a uniform value of subpixel values or a uniform value based on subpixel type. For example, a frame with a pure blue color can be achieved by generating a first uniform subpixel value of 255 for all blue subpixels and a second uniform subpixel value of 0 for all red subpixels and all green subpixels.

[0200] "Subpixel" refers to a subdivision of a display device pixel associated with a specific color. In such a case, the pixel contains subpixel elements that can display various colors with varying intensities. For example, in many color displays, a pixel contains red subpixels, green subpixels, and blue subpixels. In another example, a pixel can contain cyan subpixels, magenta subpixels, yellow subpixels, and black subpixels. The actual color and the number of subpixels can vary based on the display device type.

[0201] "Sub-pixel value" refers to data that describes how the brightness of an associated sub-pixel is. In an embodiment where a pixel vector is represented by a vector, each value within the pixel vector is a sub-pixel value. Each sub-pixel value is associated with a specific sub-pixel element, and the sub-pixel element is in turn associated with a specific color.

[0202] "User device" refers to a device that is, for example, accessed, controlled, or owned by a user and with which the user interacts to perform an action or interact with other users or computer systems. The user device can be a phone, smart watch, tablet computer, laptop computer, or any other computing device capable of sending and / or receiving content.

[0203] "Visual content" refers to digital content that can be displayed. Visual content can be an image, video, text, media overlay, or any other content that can be presented on a display.

Claims

1. A system, comprising: At least one hardware processor; And At least one memory storing instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to perform operations, the operations including: Accessing a content item; Generating a modified content item including a set of frames based on the content item, the set of frames including: A first frame including a modified version of the content item, and A second frame including a solid color; and Causing the modified content item to be displayed by a user device, the causing the display including causing the user device to alternate between displaying the first frame and displaying the second frame.

2. The system according to claim 1, further comprising: Determining a display refresh rate of the user device; Determining a first duration for displaying the first frame based on the display refresh rate; And Determining a second duration for displaying the second frame based on the display refresh rate, wherein the user device displays the first frame for the first duration and displays the second frame for the second duration.

3. The system according to claim 1, wherein, The set of frames further includes a plurality of additional frames including solid colors, wherein generating the modified content item further includes determining the number of additional frames.

4. The system according to claim 3, further comprising determining a display refresh rate of the user equipment, wherein, The determination of the number of additional frames is based on the display refresh rate of the user device.

5. The system according to claim 3, further comprising determining a processor capability of the user equipment, wherein, The determination of the number of additional frames is based on the processor capability of the user device.

6. The system according to claim 1, wherein, Generating the modified content item further includes: Modifying the content item to generate the first frame; and Generating the second frame including the solid color.

7. The system according to claim 6, wherein, Modifying the content item includes modifying the brightness of the content item.

8. The system according to claim 7, wherein, The modification of the brightness is based on at least one of: the brightness of the content item, the contrast of the content item, and the ambient brightness of the surrounding environment of the user device.

9. A method, comprising: Accessing a content item; Generating a modified content item including a set of frames based on the content item, the set of frames including: A first frame including a modified version of the content item, and A second frame including a solid color; And Causing the modified content item to be displayed by a user device, the causing the display including causing the user device to alternate between displaying the first frame and displaying the second frame.

10. The method according to claim 9, further comprising: Determining a display refresh rate of the user device; Determining a first duration for displaying the first frame based on the display refresh rate; And Determining a second duration for displaying the second frame based on the display refresh rate, wherein the user device displays the first frame for the first duration and displays the second frame for the second duration.

11. The method according to claim 9, wherein, The set of frames further includes a plurality of additional frames including solid colors, wherein generating the modified content item further includes determining the number of additional frames.

12. The method according to claim 11 further includes determining a display refresh rate of the user equipment, wherein, The determination of the number of additional frames is based on the display refresh rate of the user device.

13. The method according to claim 11, further comprising determining the processor capabilities of the user equipment, wherein, The determination of the number of additional frames is based on the processor capability of the user device.

14. The method according to claim 9, wherein Generating the modified content item further includes: Modify the content item to generate the first frame; and Generate the second frame including the solid color.

15. The method according to claim 14, wherein, Modifying the content item includes modifying the brightness of the content item.

16. The method according to claim 15, wherein The modification of the brightness is based on at least one of the following: the brightness of the content item, the contrast of the content item, and the ambient brightness of the surrounding environment of the user equipment.

17. A machine-readable medium storing instructions that, when executed by one or more processors of a machine, cause the machine to perform operations, the operations including: Access a content item; Generate a modified content item including a set of frames based on the content item, the set of frames including: A first frame including a modified version of the content item, and A second frame including a solid color; And Cause the modified content item to be displayed by a user equipment, the causing to display including causing the user equipment to alternate between displaying the first frame and displaying the second frame.

18. The machine-readable medium according to claim 17, wherein, The operations performed further include: Determine the display refresh rate of the user equipment; Determine a first duration for displaying the first frame based on the display refresh rate; and Determine a second duration for displaying the second frame based on the display refresh rate, wherein the user equipment displays the first frame for the first duration and displays the second frame for the second duration.

19. The machine-readable medium according to claim 17, wherein, The set of frames further includes a number of additional frames including solid colors, wherein generating the modified content item further includes determining the number of additional frames.

20. The machine-readable medium according to claim 17, wherein, The operations performed further include: Modify the content item to generate the first frame; and Generate the second frame including the solid color.