RU2523207C2 - Способ и устройство обработки изображения для средства диалогового обмена сообщениями - Google Patents

Способ и устройство обработки изображения для средства диалогового обмена сообщениями Download PDF

Info

Publication number
RU2523207C2
RU2523207C2 RU2012120271/08A RU2012120271A RU2523207C2 RU 2523207 C2 RU2523207 C2 RU 2523207C2 RU 2012120271/08 A RU2012120271/08 A RU 2012120271/08A RU 2012120271 A RU2012120271 A RU 2012120271A RU 2523207 C2 RU2523207 C2 RU 2523207C2
Authority
RU
Russia
Prior art keywords
cursor
editing area
recorded
current
current cursor
Prior art date
Application number
RU2012120271/08A
Other languages
English (en)
Other versions
RU2012120271A (ru
Inventor
Чунпенг ВАНГ
Хуаню ЖОУ
Original Assignee
Тенсент Текхнолоджи (Шенжен) Компани Лимитед
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Тенсент Текхнолоджи (Шенжен) Компани Лимитед filed Critical Тенсент Текхнолоджи (Шенжен) Компани Лимитед
Publication of RU2012120271A publication Critical patent/RU2012120271A/ru
Application granted granted Critical
Publication of RU2523207C2 publication Critical patent/RU2523207C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

Изобретение относится к устройствам обработки изображения. Технический результат заключается в обеспечении возможности рисования линии, соответствующей действительно траектории перемещения курсора. Устройство включает первый модуль получения, выполненный с возможностью получения данных области редактирования, захваченной Интернет-пейджером, где данные области редактирования включают по крайней мере интервал значений абсцисс и интервал значений ординат, второй модуль получения, выполненный с возможностью получения и записи данных положения курсора в реальном времени после получения начального уведомления и до получения конечного уведомления и модуль генерации, выполненный с возможностью генерации линейного сегмента в соответствии с данными положения текущего курсора и записанными данными положения предшествующего курсора, которые были получены вторым модулем получения, а также данными области редактирования, которые были получены первым модулем получения. 2 н. и 19 з.п. ф-лы, 5 ил.

Description

Область техники
Настоящее изобретение относится к области компьютеров, в частности к способу и устройству обработки изображения для средства диалогового обмена сообщениями.
Предшествующий уровень техники
С быстрым развитием интернет-технологий, широкое распространение получили средства диалогового обмена сообщениями или интернет-пейджеры. Пользователи часто используют эти средства диалогового обмена сообщениями для отправки большого количества изображений. Некоторые из этих изображений пользователям необходимо обработать до отправки.
Существующие средства диалогового обмена сообщениями имеют функцию снимка экрана или скриншота и функцию редактирования. Пользователи могут захватить изображение использованием функции скриншота, а затем обработать изображение использованием функции редактирования, например, добавить контент к изображению захваченного снимка или удалить часть контента из изображения. Рисование линии на изображении является одним из способов обработки изображения. Существующая функция редактирования позволяет рисовать линию на изображении следующим образом. Когда нажата основная кнопка мыши, то функция редактирования получает данные о положении курсора в качестве начального положения. Затем, пользователь может переместить мышь, при этом курсор перемещается, следуя за перемещением мыши до тех пор, пока пользователь не отпустит основную кнопку мыши. В результате, функцией редактирования рисуется прямая линия между положением, в котором расположен курсор при отпускании основной кнопки мыши, и начальным положением.
В процессе разработки настоящего технического решения, изобретатель обнаружил, что существует по крайней мере следующая проблема предшествующего уровня техники: существующая функция редактирования может рисовать только прямую линию между начальным положением, в котором расположен курсор при нажатии основной кнопки мыши, и положением, в котором расположен курсор при отпускании основной кнопки мыши, но не может рисовать линию, соответствующую действительной траектории перемещения курсора. И если пользователю необходимо при редактировании использовать кривую, он должен постоянно несколько раз подряд нажимать основную кнопку, перемещать мышь и отпускать основную кнопку или использовать другой графический редактор другого программного обеспечения для целей редактирования. Предшествующий этому изобретению способ редактирования является относительно сложным, а редактирование с использованием кривой линии является неудовлетворительным из-за невозможности добиться плавности. Последний способ редактирования требует выполнения серии относительно сложных операций, таких как первоначальное сохранение изображения, захваченное функцией скриншота программного обеспечения средства диалогового обмена сообщениями, открытие и редактирование сохраненного изображения с использованием программного обеспечения для обработки изображений, а затем сохранение отредактированного изображения.
Раскрытие изобретения
С целью создания удобства для пользователя в виде возможности рисования линии, соответствующей действительно траектории перемещения курсора, здесь раскрывается способ и устройство для обработки изображения для средства диалогового обмена сообщениями.
В частности, по настоящему изобретению предлагается способ обработки изображения для средства диалогового обмена сообщениями, характеризующийся тем, что включает следующие операции: получение данных области редактирования, захваченной средством диалогового обмена сообщениями, где данные области редактирования включают по крайней мере интервал значений абсцисс и интервал значений ординат; получение и запись данных положения курсора в реальном времени после получения начального уведомления и до получения конечного уведомления; и генерация линейного сегмента в соответствии с данными положения текущего курсора, записанными данными положения предшествующего курсора и данными области редактирования.
Здесь, линейный сегмент генерируют в области редактирования между текущим курсором и предшествующим курсором в соответствии с данными положения текущего курсора, записанными данными положения предшествующего курсора и данными области редактирования.
Также, по настоящему изобретению предлагается устройство обработки изображения для средства диалогового обмена сообщениями, характеризующееся тем, что включает: первый модуль получения, выполненный с возможностью получения данных области редактирования, захваченной Интернет-пейджером, где данные области редактирования включают по крайней мере интервал значений абсцисс и интервал значений ординат; второй модуль получения, выполненный с возможностью получения и записи данных положения курсора в реальном времени после получения начального уведомления и до получения конечного уведомления; и модуль генерации, выполненный с возможностью генерации линейного сегмента в соответствии с данными положения текущего курсора и записанными данными положения предшествующего курсора, которые были получены вторым модулем получения, а также данными области редактирования, которые были получены первым модулем получения.
Здесь, модуль генерации выполнен с возможностью генерировать линейный сегмент в области редактирования между текущим курсором и предшествующим курсором в соответствии с данными положения текущего курсора, записанными данными положения предшествующего курсора и данными области редактирования, где данные положения текущего курсора и записанные данные положения предшествующего курсора были получены вторым модулем получения, а данные области редактирования были получены первым модулем получения.
Краткое описание чертежей
Фиг. 1 - блок-схема алгоритма способа обработки изображения для средства диалогового обмена сообщениями по примеру 1 осуществления настоящего изобретения;
фиг. 2 - блок-схема алгоритма способа обработки изображения для средства диалогового обмена сообщениями по примеру 2 осуществления настоящего изобретения;
фиг. 3 - схематичный вид области редактирования по примеру 2 осуществления настоящего изобретения;
фиг. 4 - блок-схема алгоритма способа обработки изображения для средства диалогового обмена сообщениями по примеру 3 осуществления настоящего изобретения; и
фиг. 5 - блок-схема устройства обработки изображения для средства диалогового обмена сообщениями по примеру 4 осуществления настоящего изобретения.
Лучший вариант осуществления изобретения
Для целей более ясного понимания целей, технических решений и преимуществ настоящего изобретения, далее настоящее изобретение будет описано более подробно с использованием примеров со ссылками на сопровождающие чертежи.
Способ обработки изображения для средства диалогового обмена сообщениями по примерам осуществления настоящего изобретения включает следующие операции: получение данных области редактирования, захваченной средством диалогового обмена сообщениями, где данные области редактирования включают по крайней мере интервал значений абсцисс и интервал значений ординат; получение и запись данных положения курсора в реальном времени после получения начального уведомления и до получения конечного уведомления и генерация линейного сегмента в соответствии с данными положения текущего курсора, записанными данными положения предшествующего курсора и данными области редактирования.
С целью повышения удобства для пользователя, настоящее изобретение позволяет пользователю обрабатывать только часть изображения, которая находится в пределах захваченной области редактирования во время обработки изображения. Линейный сегмент может быть сгенерирован в области редактирования между текущим курсором и предшествующим курсором в соответствии с данными положения текущего курсора, записанными данными положения предшествующего курсора и данными области редактирования.
В соответствии с упомянутыми выше примерами осуществления настоящего изобретения, данные положения текущего курсора получают в реальном времени, и линейный сегмент генерируют в реальном времени, при этом линейный сегмент, сгенерированный между текущим курсором и предшествующим курсором, главным образом является таким же, как действительная траектория перемещения курсора (т.е. нарисованная линия является по существу такой же, как траектория перемещения курсора). Поэтому пользователь может редактировать кривую в пределах области редактирования с помощью простых действий. Это повышает эффективность работы пользователя и тем самым улучшает практичность средства диалогового обмена сообщениями.
Здесь, далее, будут описаны примеры осуществления настоящего изобретения со ссылками на сопровождающие чертежи.
Пример 1
Как показано на фиг. 1, по этому примеру осуществления настоящего изобретения обеспечивается способ обработки изображения для средства диалогового обмена сообщениями, в частности способ, исполняемый функцией редактирования для средства диалогового обмена сообщениями, который включает следующие операции.
Операция 101: получение данных области редактирования, захваченной средством диалогового обмена сообщениями, где данные области редактирования включают по крайней мере интервал значений абсцисс и интервал значений ординат.
В этой операции, пользователь захватывает область редактирования использованием функции скриншота средства диалогового обмена сообщениями.
Операция 102: получение и запись данных положения начального курсора, когда получено начальное уведомление, где данные положения включают по крайней мере координаты.
Когда пользователь нажимает основную кнопку мыши или нажимает сенсорный экран для редактирования области редактирования, функция редактирования получает начальное уведомление, которое является сообщением о нажатии кнопки мыши или сенсорного экрана, а конечным уведомлением является сообщение об отпускании кнопки мыши или сенсорного экрана.
Операция 103: получение данных положения текущего курсора в реальном времени до получения конечного уведомления, генерация линейного сегмента в соответствии с данными положения текущего курсора, записанными данными положения предшествующего курсора и данными области редактирования и обновление записанных данных положения их заменой на данные положения текущего курсора.
Когда пользователь отпускает основную кнопку мыши или сенсорный экран после завершения действий редактирования, функция редактирования получает конечное уведомление, которое является сообщением об отпускании основной кнопки мыши или сенсорного экрана.
Пример 2
После того как пользователь захватил область редактирования использованием функции скриншота средства диалогового обмена сообщениями и запустил функцию редактирования, начинает выполняться способ обработки изображения для средства диалогового обмена сообщениями по этому примеру осуществления настоящего изобретения. В этом примере, данные положения курсора включают координаты и взаимное положение между начальным курсором и областью редактирования. Здесь, далее, этот пример осуществления будет описан подробно со ссылкой на фиг. 2.
Как показано на фиг. 2, по этому примеру осуществления настоящего изобретения обеспечивается способ обработки изображения для средства диалогового обмена сообщениями, который включает следующие операции.
Операция 201: получение функцией редактирования данных области редактирования, захваченной средством диалогового обмена сообщениями, где данные области редактирования включают по крайней мере интервал значений абсцисс, интервал значений ординат и линейное уравнение каждой из границ области редактирования.
Область редактирования является прямоугольной и поэтому имеет две пары диагональных точек, причем каждая пара включает две диагональные точки. Здесь, в частности, функция редактирования получает координаты (X1, Y1) и (X2, Y2) двух диагональных точек, входящих в одну из пар диагональных точек, соответственно, и здесь предполагается, что X1<X2 и Y1>Y2. В соответствии с этими координатами (X1, Y1) и (X2, Y2) диагональных точек, в полученные данные области редактирования включается интервал значений абсцисс [X1, X2] и интервал значений ординат [Y2, Y1].
Например, область редактирования, захваченная пользователем использованием функции скриншота средства диалогового обмена сообщениями, является областью редактирования ABCD, как показано на фиг. 3. Здесь фиг. 3 является схематичным видом области редактирования по примеру 2 осуществления настоящего изобретения. Как показано на фиг. 3, область редактирования включает две пары диагональных точек, где в одну пару входит диагональная точка A и диагональная точка C, а во вторую пару входит диагональная точка B и диагональная точка В. Функция редактирования получает координаты двух диагональных точек, входящих в одну из этих двух пар, и предположим, что были получены координаты диагональной точки A и диагональной точки C как (2, 4) и (6, 1), соответственно. В соответствии с координатами (2, 4) диагональной точки A и координатами (6, 1) диагональной точки C, в полученные данные области редактирования включается интервал значений абсцисс [2, 6] и интервал значений ординат [1, 4].
Функция редактирования определяет линейное уравнение каждой из границ, входящих в область редактирования, в соответствии с интервалом значений абсцисс и интервалом значений ординат или в соответствии с полученными координатами двух диагональных точек. Например, в соответствии с интервалом значений абсцисс [2, 6] и интервалом значений ординат [1, 4] или в соответствии с координатами (2, 4) и (6, 1) двух диагональных точек, линейные уравнения границ области редактирования ABCD будут определены как x=2, x=6, y=1 и y=4, соответственно.
Операция 202: получение и запись данных положения начального курсора функцией редактирования при получении начального уведомления, где данные положения включают координаты начального курсора и взаимное положение между начальным курсором и областью редактирования.
В случае использования мыши, пользователь нажимает основную кнопку мыши (например, левую кнопку мыши) и начинает рисовать линию. Когда нажимается основная кнопка мыши, функция редактирования получает начальное уведомление, которое отправляется операционной системой и является сообщением о нажатии кнопки мыши, в качестве уведомления функции редактирования о начале процесса редактирования. Затем, пользователь перемещает мышь, и курсор перемещается, следуя за перемещением мыши. Функция редактирования отслеживает сообщения о перемещении мыши, которые периодически отправляются операционной системой, где каждое такое сообщение включает координаты текущего курсора. Другими словами, после получения начального уведомления, отправленного пользователем с помощью устройства ввода типа мыши или сенсорного экрана, функция редактирования начинает получать координаты текущего курсора в реальном времени. Период отправки операционной системой сообщений о перемещении мыши (т.е. координат текущего курсора) является относительно коротким и обычно составляет несколько миллисекунд или даже меньше, поэтому функция редактирования может получать координаты текущего курсора в реальном времени сразу после получения начального уведомления.
Эта операция будет описана более подробно на примере использования мыши в качестве устройства ввода. Когда пользователь нажимает основную кнопку мыши, функция редактирования получает начальное уведомление и сразу получает координаты (X, Y) текущего курсора в качестве начального курсора за счет отслеживания сообщений о перемещении мыши. Затем функция редактирования получает взаимное положение между начальным курсором и областью редактирования в соответствии с координатами (X, Y) начального курсора и некоторыми данными области редактирования и записывает эти координаты (X, Y) начального курсора и взаимное положение между начальным курсором и областью редактирования. Для удобства описания, координаты курсора, записанные в памяти, будут обозначаться в этом примере как (X', Y').
Здесь, операция определения взаимного положения между начальным курсором и областью редактирования включает: определение того, попадают ли значения абсциссы X и ординаты Y начального курсора в интервал значений абсцисс [X1, X2] и интервал значений ординат [Y2, Y1] области редактирования, соответственно; причем, если ответом является «да», то определяют, что взаимное положение между начальным курсором и областью редактирования является таким, что начальный курсор находится в области редактирования, в противном случае, если ответом является «нет», то определяют, что взаимное положение между начальным курсором и областью редактирования является таким, что начальный курсор находится вне области редактирования.
Например, предположим, что текущим курсором является курсор E, показанный на фиг. 3, а координатами курсора E являются (5, 3). Когда нажимается основная кнопка мыши, функция редактирования сначала получает координаты (5, 3) текущего курсора E в качестве начального курсора сразу после получения начального уведомления, отправленного операционной системой; а затем функция редактирования определяет, находятся ли абсцисса 5 и ордината 3 курсора E в пределах области редактирования ABCD, соответственно. Т.к. определяется, что абсцисса 5 и ордината 3 курсора E попадают в интервал значений абсцисс [2, 6] и интервал значений ординат [1, 4], соответственно, то определяют, что взаимное положение между курсором E и областью редактирования ABCD является таким, что этот курсор находится в области редактирования. Затем записывают координаты (5, 3) курсора E и взаимное положение между курсором E и областью редактирования ABCD, свидетельствующее о нахождении этого курсора в области редактирования.
Операция 203: получение данных положения текущего курсора функцией редактирования, где данные положения текущего курсора включают координаты текущего курсора и взаимное положение между текущим курсором и областью редактирования, которое определяют в соответствии в координатами (X, Y) текущего курсора и некоторыми данными области редактирования.
В частности, после получения координат (X, Y) текущего курсора, функция редактирования определяет, попадают ли значения абсциссы X и ординаты Y текущего курсора в интервал значений абсцисс [X1, X2] и интервал значений ординат [Y2, Y1] области редактирования, соответственно. Если ответом является «да», то определяют, что взаимное положение между текущим курсором и областью редактирования является таким, что текущий курсор находится в области редактирования, в противном случае, если ответом является «нет», то определяют, что взаимное положение между текущим курсором и областью редактирования является таким, что текущий курсор находится вне области редактирования.
Например, предположим, что координатами текущего курсора, полученными функцией редактирования в то же самое время, являются координаты (4, 2) текущего курсора F, показанного на фиг. 3, соответственно, здесь определяют, что абсцисса 4 и ордината 2 текущего курсора F попадают в интервал значений абсцисс [2, 6] и интервал значений ординат [1, 4] области редактирования ABCD, соответственно. Поэтому также определяют, что взаимное положение между текущим курсором F и областью редактирования ABCD является таким, что этот курсор находится в области редактирования.
Операция 204: определение функцией редактирования взаимного положения между текущим курсором и областью редактирования и взаимного положения между записанным курсором и областью редактирования. Если взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что как текущий курсор, так и записанный курсор находятся вне области редактирования, то далее выполняют операцию 205; если взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что как текущий курсор, так и записанный курсор находятся в области редактирования, то далее выполняют операцию 206; в остальных случаях далее выполняют операцию 207.
Операция 205: обновление функцией редактирования координат (X', Y') курсора, записанного в памяти, и взаимного положения между этим курсором и областью редактирования на координаты (X, Y) текущего курсора и взаимное положение между текущим курсором и областью редактирования, соответственно. Затем выполняют операцию 212.
Операция 206: генерация линейного сегмента между текущим курсором и курсором, записанным в памяти, и обновление функцией редактирования координат (X', Y') курсора, записанного в памяти, и взаимного положения между этим курсором и областью редактирования на координаты (X, Y) текущего курсора и взаимное положение между текущим курсором и областью редактирования, соответственно. Затем выполняют операцию 212.
Период отправки сообщений о перемещении мыши с координатами текущего курсора является относительно коротким, поэтому линейный сегмент генерируется между текущим курсором и курсором, записанным в памяти, практически таким же, как действительная траектория перемещения курсора.
Например, в операции 204 функция редактирования определяет, что взаимное положение между текущим курсором F и областью редактирования ABCD и взаимное положение между записанным курсором E и областью редактирования ABCD являются такими, что как текущий курсор F, так и записанный курсор E находятся в области редактирования. Поэтому выполняется операция 206 для генерации линейного сегмента между текущим курсором F и записанным курсором E и обновления координат курсора E, записанного в памяти, и взаимного положения между курсором E и областью редактирования ABCD на координаты (4, 2) текущего курсора F и взаимное положение между текущим курсором F и областью редактирования ABCD, соответственно.
Операция 207: получение функцией редактирования линейного уравнения линейного сегмента, сформированного записанным курсором и текущим курсором, в соответствии с координатами (X, Y) текущего курсора и координатами (X', Y') записанного курсора.
В частности, в соответствии с координатами (X, Y) текущего курсора и координатами (X', Y') записанного курсора рассчитывают коэффициент наклона и отрезок, отсекаемый на координатной оси, по следующим формулам:
Figure 00000001
,
Figure 00000002
,
а затем коэффициент наклона k и отрезок, отсекаемый на координатной оси, b подставляют в выражение y=kx+b, являющееся формулой линейного уравнения линейного сегмента, сформированного записанным курсором и текущим курсором.
Например, предположим, что координаты курсора, записанные в памяти, являются координатами (1, 2) курсора G, показанного на фиг. 3, а взаимное положение между курсором G и областью редактирования ABCD является таким, что этот курсор лежит вне области редактирования, а также предположим, что текущим курсором является курсор H, координатами которого являются (3, 3), и взаимное положение между курсором H и областью редактирования является таким, что этот курсор лежит в области редактирования, тогда при выполнении операции 207 функция редактирования получит линейное уравнение y=0,5x+1,5 линейного сегмента GH в соответствии с координатами (1, 2) записанного курсора G и координатами (3, 3) текущего курсора H.
Операция 208: получение функцией редактирования точки пересечения между линейным сегментом, сформированным текущим курсором и записанным курсором, и каждой из границ области редактирования в соответствии с линейным уравнением каждой из границ, входящих в область редактирования, и линейным уравнением линейного сегмента.
В частности, функция редактирования объединяет линейное уравнение каждой из границ области редактирования и линейное уравнение линейного сегмента в системы уравнений, решает каждую из систем уравнений для получения координат точки пересечения между прямой линией, на которой лежит линейный сегмент, и прямой линий, на которой лежит каждая из границ; а затем выбирает точку пересечения, в которой линейный сегмент пересекает одну из границ области редактирования в соответствии с координатами каждой из точек пересечения.
Точка пересечения, в которой линейный сегмент пересекает одну из границ области редактирования, должна быть расположена на линейном сегменте. Абсциссы каждой из точек этого линейного сегмента входят в интервал между абсциссой X' записанного курсора и абсциссой X текущего курсора, а ординаты каждой из точек этого линейного сегмента входят в интервал между абсциссой Y' записанного курсора и абсциссой Y текущего курсора. Поэтому вышеуказанная операция выбора точки пересечения, в которой линейный сегмент пересекает одну из границ области редактирования в соответствии с координатами каждой из точек пересечения, включает: из точек пересечения выбирают точку пересечения, абсцисса которой имеет значение между значением абсциссы X' записанного курсора и значением абсциссы X текущего курсора, а ордината которой имеет значение между значением ординаты Y' записанного курсора и значением ординаты Y текущего курсора.
Например, линейные уравнения x=2, x=6, y=1 и y=4 границ области редактирования ABCD объединяют с линейным уравнением y=0,5x+1,5 линейного сегмента GH с получением четырех систем уравнений. Затем эти системы уравнений решают с получением координат (2, 2,5), (6, 4,5), (-1, 1) и (5, 4) четырех точек пересечения соответственно. Точка пересечения (2, 2,5), абсцисса которой входит в интервал [1, 3] и ордината которой входит в интервал [2, 3], выбирается из этих четырех точек пересечения. Для удобства описания, выбранная точка пересечения обозначена как точка K, т.е. точка пересечения K является точкой пересечения, в которой линейный сегмент GH пересекает одну из границ области редактирования ABCD.
Далее, предпочтительно, если операция получения линейного уравнения каждой из границ области редактирования может быть пропущена в операции 201 и выполнена вместо этого в операции 208.
Операция 209: определение взаимного положения между текущим курсором и областью редактирования и взаимного положения между записанным курсором и областью редактирования. Если взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что текущий курсор находится в области редактирования, а записанный курсор находится вне области редактирования, то далее выполняют операцию 210, а если взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что текущий курсор находится вне области редактирования, а записанный курсор находится в области редактирования, то далее выполняют операцию 211.
Например, функция редактирования определяет, что взаимное положение между текущим курсором H и областью редактирования и взаимное положение между записанным курсором G и областью редактирования являются такими, что текущий курсор H находится в области редактирования, а записанный курсор G находится вне области редактирования, то далее выполняют операцию 210.
Операция 210: генерация функцией редактирования линейного сегмента между точкой пересечения и текущим курсором и обновление координат (X', Y') курсора, записанных в памяти, и взаимного положения между этим курсором и областью редактирования на координаты (X, Y) текущего курсора и взаимное положение между текущим курсором и областью редактирования, соответственно. Затем выполняют операцию 212.
Например, линейный сегмент генерируют между точкой пересечения K и текущим курсором H, а затем координаты курсора G, записанные в памяти, и взаимное положение между курсором G и областью редактирования ABCD обновляют на координаты (3, 3) текущего курсора H и взаимное положение между текущим курсором H и областью редактирования ABCD, соответственно, исходя из того, что этот курсор находится в области редактирования.
Операция 211: генерация функцией редактирования линейного сегмента между точкой пересечения и записанным курсором и обновление координат (X', Y') курсора, записанных в памяти, и взаимного положения между этим курсором и областью редактирования на координаты (X, Y) текущего курсора и взаимное положение между текущим курсором и областью редактирования, соответственно. Затем выполняют операцию 212.
В операциях 210 и 211 линейные сегменты генерируют только между точками пересечения и курсорами, которые находятся в области редактирования, поэтому линию можно нарисовать только в пределах области редактирования (т.е. редактирование возможно только для изображения, захваченного функцией скриншота).
Операция 212: определение функцией редактирования, получено ли конечное уведомление, и если ответом является «да», то завершение операций, в противном случае, если ответом является «нет», то возврат к операции 203.
Когда пользователь отпускает устройства ввода, например основную кнопку мыши или сенсорный экран, функция редактирования, отслеживающая уведомления и сообщения операционной системы, уведомляется, что основная кнопка мыши или сенсорный экран отпущены, для окончания редактирования функцией редактирования, тем самым выполнение операций прекращается.
Когда пользователю необходимо редактировать захваченное изображение несколько раз, то вышеуказанные операции с 202 по 212 могут выполняться повторно до тех пор, пока задача редактирования не будет выполнена и функция редактирования не будет отключена пользователем.
Далее, в этом примере функция редактирования может в первую очередь определять, являются ли координаты (X, Y) текущего курсора такими же, как координаты (X', Y') записанного курсора, после получения координат текущего курсора. Если координаты (X, Y) текущего курсора отличаются от координат (X', Y') записанного курсора, то выполняют вышеописанные последующие операции, в противном случае, если координаты (X, Y) текущего курсора являются такими же, как координаты (X', Y') записанного курсора, то вместо выполнения последующих операций повторно получают координаты текущего курсора.
Дополнительно, пользователь может также задать толщину и цвет линии после запуска функции редактирования. При генерации линейного сегмента, функция редактирования сгенерирует линейный сегмент, имеющий толщину и цвет линии, заданные пользователем.
Поскольку линейный сегмент, генерируемый в каждый период времени, практически повторяет траекторию перемещения курсора, то линия, нарисованная пользователем, будет практически такой же, как и вся действительная траектория перемещения курсора.
В этом примере, когда область редактирования захватывается пользователем с помощью функции скриншота средства диалогового обмена сообщениями, изображение в пределах области редактирования сохраняется во внутренней памяти. Всякий раз, когда функцией редактирования рисуется линейный сегмент, изображение в пределах всей области редактирования сохраняется во внутренней памяти. Когда пользователь желает удалить нарисованную линию, соответствующее изображение может быть считано непосредственно из внутренней памяти.
В этом примере осуществления настоящего изобретения, получают данные области редактирования, захваченные с помощью функции скриншота средства диалогового обмена сообщениями; получают и записывают данные положения начального курсора при получении уведомления о нажатии кнопки мыши; и когда вновь получают координаты текущего курсора, генерируют линейный сегмент в соответствии с данными положения текущего курсора, записанными данными положения и данными области редактирования. Функция редактирования отслеживает в реальном времени координаты текущего курсора, отправляемые операционной системой, в каждый период, и поскольку этот период является относительно коротким, то линейный сегмент, генерируемый в каждый период, практически подобен действительной траектории перемещения курсора. Поэтому нарисованная линия является практически такой же, как действительная траектория перемещения курсора.
Пример 3
В этом примере, данные положения курсора включают только координаты курсора и не включают взаимное положение между курсором и областью редактирования. Для цели краткости изложения, операции по этому примеру, являющиеся такими же, как в примере 2 выше, не будут описываться повторно.
Как показано на фиг. 4, по этому примеру осуществления настоящего изобретения обеспечивается способ обработки изображения для средства диалогового обмена сообщениями, который включает следующие операции.
Операция 301: получение функцией редактирования данных области редактирования, захваченной функцией скриншота средства диалогового обмена сообщениями, где данные области редактирования включают по крайней мере интервал значений абсцисс и интервал значений ординат области редактирования.
Операция 302: получение и запись данных положения начального курсора функцией редактирования при получении начального уведомления, т.е. получение и запись функцией редактирования координат (X, Y) текущего курсора в качестве координат начального курсора.
Подобно вышеописанному, координаты записанного курсора обозначены как (X', Y') для удобства пояснения.
Операция 303: получение функцией редактирования данных положения текущего курсора, которые включают координаты (X, Y) текущего курсора, и получение взаимного положения между текущим курсором и областью редактирования в соответствии с координатами текущего курсора.
Операция получения взаимного положения между текущим курсором и областью редактирования является такой же, как операция 203 в примере 2, поэтому описание этой операции здесь приводиться не будет.
Операция 304: получение функцией редактирования взаимного положения между записанным курсором и областью редактирования в соответствии с координатами записанного курсора.
Операция 305: определение функцией редактирования взаимного положения между текущим курсором и областью редактирования и взаимного положения между записанным курсором и областью редактирования. Если взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что как текущий курсор, так и записанный курсор находятся вне области редактирования, то далее выполняют операцию 306; если взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что как текущий курсор, так и записанный курсор находятся в области редактирования, то далее выполняют операцию 307; в противном случае, если взаимное положение между текущим курсором и областью редактирования отличается от взаимного положения между записанным курсором и областью редактирования, то далее выполняют операцию 308.
Операция 306: обновление функцией редактирования координат записанного курсора на координаты текущего курсора. Затем выполняют операцию 314.
Операция 307: генерация линейного сегмента между записанным курсором и текущим курсором и обновление функцией редактирования координат записанного курсора на координаты текущего курсора. Затем выполняют операцию 314.
Операция 308: определение функцией редактирования линейных уравнений (например, x=X1, x=X2, y=Y1 и y=Y2) границ, входящих в область редактирования, в соответствии с интервалом значений абсцисс [X1, X2] и интервалом значений ординат [Y2, Y1] области редактирования.
Операция 309: получение функцией редактирования линейного уравнения линейного сегмента, сформированного записанным курсором и текущим курсором, в соответствии с координатами (X', Y') записанного курсора и координатами (X, Y) текущего курсора.
Эта операция получения линейного уравнения линейного сегмента является точно такой же, как операция 207 в примере 2, поэтому описание этой операции здесь приводиться не будет.
Операция 310: получение функцией редактирования точки пересечения между линейным сегментом и каждой из границ области редактирования в соответствии с линейным уравнением линейного сегмента и линейными уравнениями границ, входящих в область редактирования.
Эта операция получения точки пересечения между линейным сегментом и каждой из границ области редактирования является точно такой же, как операция 208 в примере 2, поэтому описание этой операции здесь приводиться не будет.
Операция 311: определение функцией редактирования взаимного положения между текущим курсором и областью редактирования и взаимного положения между записанным курсором и областью редактирования. Если взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что текущий курсор находится в области редактирования, а записанный курсор находится вне области редактирования, то далее выполняют операцию 312, а если взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что текущий курсор находится вне области редактирования, а записанный курсор находится в области редактирования, то далее выполняют операцию 313.
Операция 312: генерация функцией редактирования линейного сегмента между текущим курсором и точкой пересечения и обновление координат записанного курсора на координаты текущего курсора. Затем выполняют операцию 314.
Операция 313: генерация функцией редактирования линейного сегмента между записанным курсором и точкой пересечения и обновление координат записанного курсора на координаты текущего курсора. Затем выполняют операцию 314.
Операция 314: определение функцией редактирования, получено ли конечное уведомление, и если ответом является «да», то завершение операций, в противном случае, если ответом является «нет», то возврат к операции 303.
Когда пользователю необходимо редактировать захваченное изображение несколько раз, то вышеуказанные операции с 302 по 314 могут выполняться повторно до тех пор, пока задача редактирования не будет выполнена и функция редактирования не будет отключена пользователем.
В этом примере, при обновлении координат начального курсора, записанного в памяти, на координаты текущего курсора, функция редактирования может дополнительно записывать взаимное положение между текущим курсором и областью редактирования, а после этого, всякий раз, когда запись обновляется, координаты записанного курсора и взаимное положение между записанным курсором и областью редактирования обновляются на координаты текущего курсора и взаимное положение между текущим курсором и областью редактирования, соответственно, а операция 304 более не выполняется.
В этом примере осуществления настоящего изобретения, получают данные области редактирования, захваченные функцией скриншота средства диалогового обмена сообщениями; получают координаты начального курсора и записывают их при получении начального уведомления, а когда вновь получают координаты текущего курсора, то генерируют линейный сегмент в соответствии с координатами текущего курсора, записанными координатами и данными области редактирования. Функция редактирования отслеживает в реальном времени координаты текущего курсора, отправляемые операционной системой, в каждый период, и поскольку этот период является относительно коротким, то линейный сегмент, генерируемый в каждый период, практически подобен действительной траектории перемещения курсора. Поэтому нарисованная линия является практически такой же, как действительная траектория перемещения курсора.
Пример 4
Как показано на фиг.5, по этому примеру осуществления настоящего изобретения обеспечивается устройство обработки изображения для средства диалогового обмена сообщениями, включающее: первый модуль получения 301, выполненный с возможностью получения данных области редактирования, захваченной Интернет-пейджером, где данные области редактирования включают по крайней мере интервал значений абсцисс и интервал значений ординат; второй модуль получения 302, выполненный с возможностью получения и записи данных положения курсора в реальном времени после получения начального уведомления и до получения конечного уведомления; и модуль генерации 303, выполненный с возможностью генерации линейного сегмента в соответствии с данными положения текущего курсора и записанными данными положения предшествующего курсора, которые были получены вторым модулем получения 302, а также данными области редактирования, которые были получены первым модулем получения 301.
Для дальнейшего повышения удобства для пользователя, в частности, настоящее изобретение позволяет пользователю обрабатывать только часть изображения, которая находится в пределах захваченной области редактирования во время обработки изображения. Модуль генерации 303 имеет возможность генерировать линейный сегмент в области редактирования между текущим курсором и предшествующим курсором в соответствии с данными положения текущего курсора, записанными данными положения предшествующего курсора и данными области редактирования, где данные положения текущего курсора и записанные данные положения предшествующего курсора были получены вторым модулем получения 302, а данные области редактирования были получены первым модулем получения 301.
В частном случае исполнения, модуль генерации включает блок определения и блок генерации. Блок определения выполнен так, чтобы при определении того, что как текущий курсор, так и предшествующий курсор находятся в области редактирования в соответствии с данными положения текущего курсора и записанными данными положения предшествующего курсора, полученные вторым модулем получения 302, и данными области редактирования, полученными первым модулем 301, отправлять блоку генерации первые данные для генерации линейного сегмента между текущим курсором и предшествующим курсором. Здесь блок генерации выполнен с возможностью генерировать линейный сегмент между текущим курсором и предшествующим курсором в соответствии с первыми данными.
Модуль генерации 303 может дополнительно включать блок расчета. Блок определения может быть выполнен так, чтобы при определении того, что текущий курсор или предшествующий курсор находится в области редактирования, а другой из них находится вне зоны редактирования, отправлять блоку расчета вторые данные для расчета точки пересечения между линейным сегментом, формируемым предшествующим курсором и текущим курсором, и одной из границ области редактирования. Здесь блок расчета выполнен с возможностью рассчитывать точку пересечения между линейным сегментом, формируемым предшествующим курсором и текущим курсором, и одной из границ области редактирования в соответствии со вторыми данными. В этом случае блок генерации выполнен с дополнительной возможностью генерировать линейный сегмент между точкой пересечения, рассчитанной блоком расчета, и курсором, находящимся в области редактирования и соответствующим точке пересечения.
Согласно еще одному из вариантов осуществления настоящего изобретения, второй модуль получения 302 выполнен с возможностью получать и записывать данные положения начального курсора, которые включают по крайней мере координаты, когда получено начальное уведомление, и получать данные положения текущего курсора в реальном времени до получения конечного уведомления. Здесь модуль генерации 303 имеет возможность генерировать линейный сегмент в соответствии с данными положения текущего курсора, записанными данными положения предшествующего курсора и данными области редактирования, а также обновлять записанные данные положения их заменой на данные положения текущего курсора.
При этом первый модуль получения 301 в частном случае включает: первый блок получения, имеющий возможность получать координаты двух диагональных точек любой из пар диагональных точек области редактирования; и второй блок получения, имеющий возможность получать интервал значений абсцисс и интервал значений ординат области редактирования в соответствии с координатами двух диагональных точек.
При этом модуль генерации 303 в частном случае включает: первый блок определения, имеющий возможность определять взаимное положение между начальным курсором и областью редактирования в соответствии с координатами начального курсора и данными области редактирования; второй блок определения, имеющий возможность определять взаимное положение между текущим курсором и областью редактирования в соответствии с координатами текущего курсора и данными области редактирования; первый блок генерации, имеющий возможность генерировать линейный сегмент между записанным курсором и текущим курсором, если определено, что взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что как текущий курсор, так и записанный курсор находятся в области редактирования; первый блок расчета, имеющий возможность определять линейное уравнение каждой из границ, входящих в область редактирования, в соответствии с данными области редактирования, если определено, что взаимное положение между текущим курсором и областью редактирования отлично от взаимного положения между записанным курсором и областью редактирования; третий блок получения, имеющий возможность получать точку пересечения между линейным сегментом, сформированным записанным курсором и текущим курсором, и каждой из границ области редактирования в соответствии с координатами текущего курсора, координатами записанного курсора и линейным уравнением каждой из границ; второй блок генерации, имеющий возможность генерировать линейный сегмент между точкой пересечения и записанным курсором, если определено, что взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что текущий курсор находится вне области редактирования, а записанный курсор находится в области редактирования; третий блок генерации, имеющий возможность генерировать линейный сегмент между точкой пересечения и текущим курсором, если определено, что взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что текущий курсор находится в области редактирования, а записанный курсор находится вне области редактирования; и первый блок обновления, имеющий возможность обновлять записанные данные положения их заменой на данные положения текущего курсора.
При этом третий блок получения в частном случае включает: первый подблок получения, имеющий возможность определять линейное уравнение сформированного линейного сегмента в соответствии с координатами текущего курсора и координатами записанного курсора; второй подблок получения, имеющий возможность объединять линейное уравнение сформированного линейного сегмента и линейное уравнение каждой из границ в системы уравнений и решать каждую из систем уравнений для получения координат точки пересечения между прямой линией, на которой лежит сформированный линейный сегмент, и прямой линий, на которой лежит каждая из границ; и подблок выбора, имеющий возможность выбирать точку пересечения, которая лежит на сформированном линейном сегменте, в соответствии с координатами записанного курсора, координатами текущего курсора и координатами каждой из точек пересечения, где выбранной точкой пересечения является точка пересечения, в которой сформированный линейный сегмент пересекает одну из границ области редактирования.
Согласно еще одному варианту осуществления настоящего изобретения, данные положения начального курсора дополнительно содержат данные относительного положения между начальным курсором и областью редактирования. Соответственно, второй модуль получения 302 включает: первый блок получения, имеющий возможность получать координаты начального курсора; третий блок определения, имеющий возможность определять, попадают ли значения абсциссы и ординаты начального курсора в интервал значений абсцисс и интервал значений ординат, соответственно, причем, если ответом является «да», то определять, что взаимное положение между начальным курсором и областью редактирования является таким, что начальный курсор находится в области редактирования, в противном случае, если ответом является «нет», то определять, что взаимное положение между начальным курсором и областью редактирования является таким, что начальный курсор находится вне области редактирования; и блок записи, имеющий возможность записывать данные положения.
Данные положения текущего курсора могут дополнительно содержать данные относительного положения между текущим курсором и областью редактирования. Соответственно, второй модуль получения 302 дополнительно включает: второй блок получения, имеющий возможность получать координаты текущего курсора в реальном времени; и четвертый блок определения, имеющий возможность определять, попадают ли значения абсциссы и ординаты текущего курсора в интервал значений абсцисс и интервал значений ординат, соответственно, причем, если ответом является «да», определять, что взаимное положение между текущим курсором и областью редактирования является таким, что текущий курсор находится в области редактирования, в противном случае, если ответом является «нет», то определять, что взаимное положение между текущим курсором и областью редактирования является таким, что текущий курсор находится вне области редактирования.
При этом модуль генерации 303 в частном случае включает: четвертый блок генерации, имеющий возможность генерировать линейный сегмент между записанным курсором и текущим курсором, если определено, что взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что как текущий курсор, так и записанный курсор находятся в области редактирования; четвертый блок получения, имеющий возможность получать точку пересечения между линейным сегментом, сформированным записанным курсором и текущим курсором, и каждой из границ области редактирования в соответствии с координатами текущего курсора, координатами записанного курсора и линейным уравнением каждой из границ, когда взаимное положение между текущим курсором и областью редактирования отлично от взаимного положения между записанным курсором и областью редактирования; пятый блок генерации, имеющий возможность генерировать линейный сегмент между точкой пересечения и записанным курсором, если определено, что взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что текущий курсор находится вне области редактирования, а записанный курсор находится в области редактирования, соответственно; шестой блок генерации, имеющий возможность генерировать линейный сегмент между точкой пересечения и текущим курсором, если определено, что взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что текущий курсор находится в области редактирования, а записанный курсор находится вне области редактирования, соответственно; и второй блок обновления, имеющий возможность обновлять записанные данные положения их заменой на данные положения текущего курсора.
Здесь устройство для обработки изображения выполняет функцию редактирования средства диалогового обмена сообщениями.
В соответствии с вышеописанными вариантами осуществления настоящего изобретения, данные положения текущего курсора получают в реальном времени, и линейный сегмент генерируют в реальном времени, при этом линейный сегмент, сгенерированный между текущим курсором и предшествующим курсором, главным образом является таким же, как действительная траектория перемещения курсора (т.е. нарисованная линия является по существу такой же, как траектория перемещения курсора). Поэтому пользователь может редактировать кривую в пределах области редактирования с помощью простых действий. Это повышает эффективность работы пользователя и тем самым улучшает практичность средства диалогового обмена сообщениями.
Все содержание или его часть в технических решениях в соответствии с вышеописанными вариантами осуществления настоящего изобретения может быть воплощено на практике с помощью программного обеспечения. Такое программное обеспечение может храниться на машиночитаемом носителе типа жесткого диска, компакт-диска (CD) или дискеты для компьютера.
То что было описано выше, является только описанием предпочтительных вариантов осуществления настоящего изобретения, которые не предназначены для целей ограничения правовой охраны настоящего изобретения. Соответственно, все модификации, эквивалентные замены или улучшения, которые основаны на сущности и существенных признаках настоящего изобретения, также будут попадать в область правовой охраны настоящего изобретения.

Claims (21)

1. Способ обработки изображения для средства диалогового обмена сообщениями, включающий следующие операции:
получение данных области редактирования, захваченной средством диалогового обмена сообщениями, где данные области редактирования включают по крайней мере интервал значений абсцисс и интервал значений ординат;
получение и запись данных положения курсора; и
генерация линейного сегмента,
отличающийся тем, что:
получение и запись данных положения курсора осуществляют в реальном времени после получения начального уведомления и до получения конечного уведомления; и
генерацию линейного сегмента осуществляют в соответствии с данными положения текущего курсора, записанными данными положения предшествующего курсора и данными области редактирования, при этом,
если определяют, что текущий курсор или предшествующий курсор находится в области редактирования, а другой из них находится вне зоны редактирования, в соответствии с данными положения текущего курсора, записанными данными положения предшествующего курсора и данными области редактирования,
то затем рассчитывают точку пересечения между линейным сегментом, формируемым предшествующим курсором и текущим курсором, и одной из границ области редактирования, и
генерируют линейный сегмент между точкой пересечения и курсором, находящимся в области редактирования.
2. Способ по п.1, отличающийся тем, что линейный сегмент генерируют в области редактирования между текущим курсором и предшествующим курсором в соответствии с данными положения текущего курсора, записанными данными положения предшествующего курсора и данными области редактирования.
3. Способ по п.2, отличающийся тем, что если определяют, что как текущий курсор, так и предшествующий курсор, находятся в области редактирования в соответствии с данными положения текущего курсора, записанными данными положения предшествующего курсора и данными области редактирования,
то затем генерируют линейный сегмент между текущим курсором и предшествующим курсором.
4. Способ по п.1, отличающийся тем, что начальным уведомлением является сообщение о нажатии кнопки мыши или сенсорного экрана, а конечным уведомлением является сообщение об отпускании кнопки мыши или сенсорного экрана.
5. Способ по п.1, отличающийся тем, что операция получения и записи данных положения курсора в реальном времени после получения начального уведомления и до получения конечного уведомления и операция генерации линейного сегмента в соответствии с данными положения текущего курсора, записанными данными положения предшествующего курсора и данными области редактирования, включают:
получение и запись данных положения начального курсора, когда получено начальное уведомление, где данные положения включают по крайней мере координаты;
получение данных положения текущего курсора в реальном времени до получения конечного уведомления;
генерация линейного сегмента в соответствии с данными положения текущего курсора, записанными данными положения предшествующего курсора и данными области редактирования; и
обновление записанных данных положения их заменой на данные положения текущего курсора.
6. Способ по п.1, отличающийся тем, что операция получения данных области редактирования включает:
получение координат двух диагональных точек любой из пар диагональных точек области редактирования; и
получение интервала значений абсцисс и интервала значений ординат области редактирования в соответствии с координатами двух диагональных точек.
7. Способ по п.5, отличающийся тем, что операция генерации линейного сегмента в соответствии с данными положения текущего курсора, записанными данными положения предшествующего курсора и данными области редактирования включает:
определение взаимного положения между начальным курсором и областью редактирования в соответствии с координатами начального курсора и данными области редактирования;
определение взаимного положения между текущим курсором и областью редактирования в соответствии с координатами текущего курсора и данными области редактирования;
если определено, что взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что как текущий курсор, так и записанный курсор находятся в области редактирования, то выполняют генерацию линейного сегмента между записанным курсором и текущим курсором;
если определено, что взаимное положение между текущим курсором и областью редактирования отлично от взаимного положения между записанным курсором и областью редактирования, то определяют линейное уравнение каждой из границ, входящих в область редактирования, в соответствии с данными области редактирования;
получение точки пересечения между линейным сегментом, сформированным записанным курсором и текущим курсором, и каждой из границ области редактирования в соответствии с координатами текущего курсора, координатами записанного курсора и линейным уравнением каждой из границ;
если определено, что взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что текущий курсор находится вне области редактирования, а записанный курсор находится в области редактирования, то генерируют линейный сегмент между точкой пересечения и записанным курсором; и
если определено, что взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что текущий курсор находится в области редактирования, а записанный курсор находится вне области редактирования, то генерируют линейный сегмент между точкой пересечения и текущим курсором.
8. Способ по п.7, отличающийся тем, что операция получения точки пересечения между линейным сегментом, сформированным записанным курсором и текущим курсором, и каждой из границ области редактирования в соответствии с координатами текущего курсора, координатами записанного курсора и линейным уравнением каждой из границ включает:
определение линейного уравнения сформированного линейного сегмента с соответствии с координатами текущего курсора и координатами записанного курсора;
объединение линейного уравнения сформированного линейного сегмента и линейного уравнения каждой из границ в системы уравнений и решение каждой из систем уравнений для получения координат точки пересечения между прямой линией, на которой лежит сформированный линейный сегмент, и прямой линий, на которой лежит каждая из границ; и
выбор точки пересечения, которая лежит на сформированном линейном сегменте, в соответствии с координатами записанного курсора, координатами текущего курсора и координатами каждой из точек пересечения, где выбранной точкой пересечения является точка пересечения, в которой сформированный линейный сегмент пересекает одну из границ области редактирования.
9. Способ по п.5, отличающийся тем, что данные положения начального курсора дополнительно содержат данные относительного положения между начальным курсором и областью редактирования, при этом операция получения данных положения начального курсора включает:
получение координат начального курсора; и
определение того, попадают ли значения абсциссы и ординаты начального курсора в интервал значений абсцисс и интервал значений ординат, соответственно,
причем, если ответом является «да», то определяют, что взаимное положение между начальным курсором и областью редактирования является таким, что начальный курсор находится в области редактирования, в противном случае, если ответом является «нет», то определяют, что взаимное положение между начальным курсором и областью редактирования является таким, что начальный курсор находится вне области редактирования.
10. Способ по п.9, отличающийся тем, что данные положения текущего курсора дополнительно содержат данные относительного положения между текущим курсором и областью редактирования, при этом операция получения данных положения текущего курсора в реальном времени включает:
получение координат текущего курсора в реальном времени; и
определение того, попадают ли значения абсциссы и ординаты текущего курсора в интервал значений абсцисс и интервал значений ординат, соответственно,
причем, если ответом является «да», то определяют, что взаимное положение между текущим курсором и областью редактирования является таким, что текущий курсор находится в области редактирования, в противном случае, если ответом является «нет», то определяют, что взаимное положение между текущим курсором и областью редактирования является таким, что текущий курсор находится вне области редактирования.
11. Способ по п.10, отличающийся тем, что операция генерации линейного сегмента в соответствии с данными положения текущего курсора, записанными данными положения и данными области редактирования включает:
если определено, что взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что как текущий курсор, так и записанный курсор находятся в области редактирования, то выполняют генерацию линейного сегмента между записанным курсором и текущим курсором;
если определено, что взаимное положение между текущим курсором и областью редактирования отлично от взаимного положения между записанным курсором и областью редактирования, то определяют линейное уравнение каждой из границ, входящих в область редактирования в соответствии с данными области редактирования;
получение точки пересечения между линейным сегментом, сформированным записанным курсором и текущим курсором, и каждой из границ области редактирования в соответствии с координатами текущего курсора, координатами записанного курсора и линейным уравнением каждой из границ;
если определено, что взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что текущий курсор находится вне области редактирования, а записанный курсор находится в области редактирования, то генерируют линейный сегмент между точкой пересечения и записанным курсором; и
если определено, что взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что текущий курсор находится в области редактирования, а записанный курсор находится вне области редактирования, то генерируют линейный сегмент между точкой пересечения и текущим курсором.
12. Устройство обработки изображения для средства диалогового обмена сообщениями, включающее:
первый модуль получения, выполненный с возможностью получения данных области редактирования, захваченной Интернет-пейджером, где данные области редактирования включают по крайней мере интервал значений абсцисс и интервал значений ординат;
второй модуль получения, выполненный с возможностью получения и записи данных положения курсора; и
модуль генерации, выполненный с возможностью генерации линейного сегмента,
отличающееся тем, что:
второй модуль получения выполнен с возможностью получения и записи данных положения курсора в реальном времени после получения начального уведомления и до получения конечного уведомления; и
модуль генерации выполнен с возможностью генерации линейного сегмента в соответствии с данными положения текущего курсора и записанными данными положения предшествующего курсора, которые были получены вторым модулем получения, а также данными области редактирования, которые были получены первым модулем получения, при этом модуль генерации включает блок определения, блок расчета и блок генерации, причем:
блок определения выполнен с возможностью, при определении того, что текущий курсор или предшествующий курсор находится в области редактирования, а другой из них находится вне зоны редактирования, отправлять блоку расчета вторые данные для расчета точки пересечения между линейным сегментом, формируемым предшествующим курсором и текущим курсором, и одной из границ области редактирования;
блок расчета выполнен с возможностью рассчитывать точку пересечения между линейным сегментом, формируемым предшествующим курсором и текущим курсором, и одной из границ области редактирования в соответствии со вторыми данными; и
блок генерации выполнен с возможностью генерировать линейный сегмент между точкой пересечения, рассчитанной блоком расчета, и курсором, находящимся в области редактирования и соответствующим точке пересечения.
13. Устройство по п.12, отличающееся тем, что модуль генерации выполнен с возможностью генерировать линейный сегмент в области редактирования между текущим курсором и предшествующим курсором в соответствии с данными положения текущего курсора, записанными данными положения предшествующего курсора и данными области редактирования, где данные положения текущего курсора и записанные данные положения предшествующего курсора были получены вторым модулем получения, а данные области редактирования были получены первым модулем получения.
14. Устройство по п.13, отличающееся тем, что:
блок определения выполнен с возможностью, при определении того, что как текущий курсор, так и предшествующий курсор находятся в области редактирования в соответствии с данными положения текущего курсора, записанными данными положения предшествующего курсора и данными области редактирования, отправлять блоку генерации первые данные для генерации линейного сегмента между текущим курсором и предшествующим курсором, где данные положения текущего курсора и записанные данные положения предшествующего курсора были получены вторым модулем получения, а данные области редактирования были получены первым модулем получения; и
блок генерации выполнен с возможностью генерировать линейный сегмент между текущим курсором и предшествующим курсором в соответствии с первыми данными.
15. Устройство по п.12, отличающееся тем, что второй модуль получения выполнен с возможностью получать и записывать данные положения начального курсора, которые включают по крайней мере координаты, когда получено начальное уведомление, и получать данные положения текущего курсора в реальном времени до получения конечного уведомления; и
модуль генерации выполнен с возможностью генерировать линейный сегмент в соответствии с данными положения текущего курсора, записанными данными положения предшествующего курсора и данными области редактирования, а также обновлять записанные данные положения их заменой на данные положения текущего курсора.
16. Устройство по п.12, отличающееся тем, что первый модуль получения включает:
первый блок получения, выполненный с возможностью получать координаты двух диагональных точек любой из пар диагональных точек области редактирования; и
второй блок получения, выполненный с возможностью получать интервал значений абсцисс и интервал значений ординат области редактирования в соответствии с координатами двух диагональных точек.
17. Устройство по п.15, отличающееся тем, что модуль генерации включает:
первый блок определения, выполненный с возможностью определять взаимное положение между начальным курсором и областью редактирования в соответствии с координатами начального курсора и данными области редактирования;
второй блок определения, выполненный с возможностью определять взаимное положение между текущим курсором и областью редактирования в соответствии с координатами текущего курсора и данными области редактирования;
первый блок генерации, выполненный с возможностью генерировать линейный сегмент между записанным курсором и текущим курсором, если определено, что взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что как текущий курсор, так и записанный курсор находятся в области редактирования;
первый блок расчета, выполненный с возможностью определять линейное уравнение каждой из границ, входящих в область редактирования, в соответствии с данными области редактирования, если определено, что взаимное положение между текущим курсором и областью редактирования отлично от взаимного положения между записанным курсором и областью редактирования;
третий блок получения, выполненный с возможностью получать точку пересечения между линейным сегментом, сформированным записанным курсором и текущим курсором, и каждой из границ области редактирования в соответствии с координатами текущего курсора, координатами записанного курсора и линейным уравнением каждой из границ;
второй блок генерации, выполненный с возможностью генерировать линейный сегмент между точкой пересечения и записанным курсором, если определено, что взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что текущий курсор находится вне области редактирования, а записанный курсор находится в области редактирования;
третий блок генерации, выполненный с возможностью генерировать линейный сегмент между точкой пересечения и текущим курсором, если определено, что взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что текущий курсор находится в области редактирования, а записанный курсор находится вне области редактирования; и
первый блок обновления, выполненный с возможностью обновлять записанные данные положения их заменой на данные положения текущего курсора.
18. Устройство по п.17, отличающееся тем, что третий блок получения включает:
первый подблок получения, выполненный с возможностью определять линейное уравнение сформированного линейного сегмента с соответствии с координатами текущего курсора и координатами записанного курсора;
второй подблок получения, выполненный с возможностью объединять линейное уравнение сформированного линейного сегмента и линейное уравнение каждой из границ в системы уравнений и решать каждую из систем уравнений для получения координат точки пересечения между прямой линией, на которой лежит сформированный линейный сегмент, и прямой линий, на которой лежит каждая из границ; и
подблок выбора, выполненный с возможностью выбирать точку пересечения, которая лежит на сформированном линейном сегменте, в соответствии с координатами записанного курсора, координатами текущего курсора и координатами каждой из точек пересечения, где выбранной точкой пересечения является точка пересечения, в которой сформированный линейный сегмент пересекает одну из границ области редактирования.
19. Устройство по п.12, отличающееся тем, что данные положения начального курсора дополнительно содержат данные относительного положения между начальным курсором и областью редактирования, при этом второй модуль получения включает:
первый блок получения, выполненный с возможностью получать координаты начального курсора;
третий блок определения, выполненный с возможностью определять, попадают ли значения абсциссы и ординаты начального курсора в интервал значений абсцисс и интервал значений ординат, соответственно, причем, если ответом является «да», то определять, что взаимное положение между начальным курсором и областью редактирования является таким, что начальный курсор находится в области редактирования, в противном случае, если ответом является «нет», то определять, что взаимное положение между начальным курсором и областью редактирования является таким, что начальный курсор находится вне области редактирования; и
блок записи, выполненный с возможностью записывать данные положения.
20. Устройство по п.19, отличающееся тем, что данные положения текущего курсора дополнительно содержат данные относительного положения между текущим курсором и областью редактирования, при этом второй модуль получения дополнительно включает:
второй блок получения, выполненный с возможностью получать координаты текущего курсора в реальном времени; и
четвертый блок определения, выполненный с возможностью определять, попадают ли значения абсциссы и ординаты текущего курсора в интервал значений абсцисс и интервал значений ординат, соответственно,
причем, если ответом является «да», определять, что взаимное положение между текущим курсором и областью редактирования является таким, что текущий курсор находится в области редактирования, в противном случае, если ответом является «нет», то определять, что взаимное положение между текущим курсором и областью редактирования является таким, что текущий курсор находится вне области редактирования.
21. Устройство по п.20, отличающееся тем, что модуль генерации включает:
четвертый блок генерации, выполненный с возможностью генерировать линейный сегмент между записанным курсором и текущим курсором, если определено, что взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что как текущий курсор, так и записанный курсор находятся в области редактирования;
второй блок расчета, выполненный с возможностью рассчитывать линейное уравнение каждой из границ, входящих в область редактирования в соответствии с данными области редактирования, если определено, что взаимное положение между текущим курсором и областью редактирования отлично от взаимного положения между записанным курсором и областью редактирования;
четвертый блок получения, выполненный с возможностью получать точку пересечения между линейным сегментом, сформированным записанным курсором и текущим курсором, и каждой из границ области редактирования в соответствии с координатами текущего курсора, координатами записанного курсора и линейным уравнением каждой из границ;
пятый блок генерации, выполненный с возможностью генерировать линейный сегмент между точкой пересечения и записанным курсором, если определено, что взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что текущий курсор находится вне области редактирования, а записанный курсор находится в области редактирования;
шестой блок генерации, выполненный с возможностью генерировать линейный сегмент между точкой пересечения и текущим курсором, если определено, что взаимное положение между текущим курсором и областью редактирования и взаимное положение между записанным курсором и областью редактирования являются такими, что текущий курсор находится в области редактирования, а записанный курсор находится вне области редактирования; и
второй блок обновления, выполненный с возможностью обновлять записанные данные положения их заменой на данные положения текущего курсора.
RU2012120271/08A 2010-01-22 2011-01-05 Способ и устройство обработки изображения для средства диалогового обмена сообщениями RU2523207C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201010102719.8 2010-01-22
CN201010102719.8A CN102136153B (zh) 2010-01-22 2010-01-22 一种用于即时通信工具的图片处理的方法及装置
PCT/CN2011/070037 WO2011088756A1 (zh) 2010-01-22 2011-01-05 一种用于即时通信工具的图片处理的方法及装置

Publications (2)

Publication Number Publication Date
RU2012120271A RU2012120271A (ru) 2013-12-27
RU2523207C2 true RU2523207C2 (ru) 2014-07-20

Family

ID=44295926

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2012120271/08A RU2523207C2 (ru) 2010-01-22 2011-01-05 Способ и устройство обработки изображения для средства диалогового обмена сообщениями

Country Status (7)

Country Link
US (1) US8856251B2 (ru)
CN (1) CN102136153B (ru)
BR (1) BR112012011892B1 (ru)
CA (1) CA2779975C (ru)
MX (1) MX2012005747A (ru)
RU (1) RU2523207C2 (ru)
WO (1) WO2011088756A1 (ru)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107566243B (zh) 2017-07-11 2020-07-24 阿里巴巴集团控股有限公司 一种基于即时通信的图片发送方法和设备
JP7087393B2 (ja) * 2018-01-12 2022-06-21 カシオ計算機株式会社 表示制御装置、表示制御方法、およびプログラム
CN110516222A (zh) * 2019-08-30 2019-11-29 北京字节跳动网络技术有限公司 文本编辑方法、装置、设备、存储介质
CN112819924B (zh) * 2021-01-27 2024-05-14 武汉悦学帮网络技术有限公司 一种图片编辑的方法、装置、电子设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6034685A (en) * 1995-02-24 2000-03-07 Casio Computer Co., Ltd. Data inputting devices
EP0720084B1 (en) * 1994-12-29 2002-02-27 Sharp Kabushiki Kaisha Input and display apparatus for handwritten characters
RU2225035C1 (ru) * 2003-04-21 2004-02-27 Общество с ограниченной ответственностью "Р.Т.С.-Сервис" Способ кодирования координат перемещающегося на экране вычислительного устройства видеоизображения, устройство для декодирования визуального объекта, закодированного этим способом, и система, предназначенная для визуализации активного видео с помощью этого устройства

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2899084B2 (ja) 1990-08-03 1999-06-02 キヤノン株式会社 図形処理装置及び方法
US20040228532A1 (en) 2003-05-14 2004-11-18 Microsoft Corporation Instant messaging ink and formats
CN100456715C (zh) * 2003-07-31 2009-01-28 腾讯科技(深圳)有限公司 通过即时通信系统实现图象信息交流的方法和系统
US8826171B2 (en) * 2003-12-31 2014-09-02 Trimble Navigation Limited System and method for entry and display of blueprint data
US20050163379A1 (en) * 2004-01-28 2005-07-28 Logitech Europe S.A. Use of multimedia data for emoticons in instant messaging
CN100444099C (zh) * 2006-08-23 2008-12-17 腾讯科技(深圳)有限公司 截图方法、截图装置及即时通讯客户端
US8059170B2 (en) * 2006-08-28 2011-11-15 Creative Technology Ltd. Method and system for processing a video instant message
KR100850313B1 (ko) * 2006-11-01 2008-08-04 이용직 필기형 유무선 복합 인스턴트 메신저 서비스 시스템 및 그서비스 방법
CN100456235C (zh) * 2006-12-27 2009-01-28 腾讯科技(深圳)有限公司 一种在即时通信中屏幕截图的方法和系统
US20090096794A1 (en) * 2007-10-16 2009-04-16 Tsung-Hsun Yang Thick line drawing method and apparatus thereof
US20090284532A1 (en) * 2008-05-16 2009-11-19 Apple Inc. Cursor motion blurring
CN101382870A (zh) * 2008-10-15 2009-03-11 深圳市杰特电信控股有限公司 一种电子绘图方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0720084B1 (en) * 1994-12-29 2002-02-27 Sharp Kabushiki Kaisha Input and display apparatus for handwritten characters
US6034685A (en) * 1995-02-24 2000-03-07 Casio Computer Co., Ltd. Data inputting devices
RU2225035C1 (ru) * 2003-04-21 2004-02-27 Общество с ограниченной ответственностью "Р.Т.С.-Сервис" Способ кодирования координат перемещающегося на экране вычислительного устройства видеоизображения, устройство для декодирования визуального объекта, закодированного этим способом, и система, предназначенная для визуализации активного видео с помощью этого устройства

Also Published As

Publication number Publication date
BR112012011892B1 (pt) 2021-05-18
CA2779975C (en) 2016-04-19
US20120233281A1 (en) 2012-09-13
US8856251B2 (en) 2014-10-07
WO2011088756A1 (zh) 2011-07-28
MX2012005747A (es) 2012-12-17
CA2779975A1 (en) 2011-07-28
RU2012120271A (ru) 2013-12-27
CN102136153B (zh) 2016-05-25
BR112012011892A2 (pt) 2016-03-15
CN102136153A (zh) 2011-07-27

Similar Documents

Publication Publication Date Title
JP6961994B2 (ja) デバイス上でのメッセージ管理とドキュメント生成のためのシステムと方法、メッセージの管理プログラム、モバイルデバイス
JP6961993B2 (ja) デバイス上でのメッセージ管理とドキュメント生成のためのシステムと方法、メッセージの管理プログラム、モバイルデバイス
JP5260733B2 (ja) ソースオブジェクトから少なくとも1つの対象オブジェクトに対するアニメーションエフェクトのコピー
TWI509409B (zh) 用於檢視在一程式之執行期間錄製之記錄之方法及系統
WO2013017019A1 (zh) 一种图片编辑动作共享的方法、共享平台及系统
JP5394555B2 (ja) 会議要旨生成装置、プログラム及びコンピュータ読み取り可能な記録媒体
CN110083411A (zh) 用于从模板生成用户界面的设备和方法
CN112887480B (zh) 音频信号处理方法、装置、电子设备和可读存储介质
WO2017152703A1 (zh) 三维标签实现方法和装置
US9304612B2 (en) Off-screen input capture for mobile device
US11895076B2 (en) Electronic messaging platform that allows users to edit and delete messages after sending
RU2523207C2 (ru) Способ и устройство обработки изображения для средства диалогового обмена сообщениями
CN107408242B (zh) 提供对通信内的内容的交互式预览
JP2017531849A (ja) 画面表示装置用の文字編集方法及び装置
CN109782997B (zh) 一种数据处理方法、装置及存储介质
CN112073301B (zh) 删除聊天群组成员的方法、设备及计算机可读介质
US9196068B2 (en) Projector system, and method for drawings
CN117311520A (zh) 云端一体输入法信息输入方法及装置、云端一体系统
JP3989530B1 (ja) 記録装置と記録装置のためのプログラム
CN117406974A (zh) 电视桌面启动器生成方法、装置、存储介质及电子设备
JP4519894B2 (ja) 記録装置と記録装置のためのプログラム
JP2011039930A (ja) 遠隔コミュニケーションシステム、管理装置、及びプログラム