Все уроки в gimp

Text tool supports CJK and more writing systems¶

The Text tool now fully supports advanced input methods for CJK and other
non-western languages. The pre-edit text is now displayed just as expected,
depending on your platform and Input Method Engine. Several input method-related
bugs and crashes have also been fixed.

Contributors: Jehan Pagès…

Experimental tools

Two new tools were incomplete for inclusion to GIMP 2.10 by default, but still
can be enabled. Please note that they are highly experimental and likely to be
broken for you (up to have GIMP crash). We only mention them, because we need
contributors to get them into the releasable state.

N-Point Deformation tool introduces the kind of smooth, as little rigid as
possible warping you would expect physical objects to have.

Seamless Clone tool is aimed to simplify making layered compositions.
Typically when you paste one image into another, there are all sorts of
mismatches: color temperature, brightness etc. This new experimental tool tries
to adapt various properties of a pasted image with regards to its backdrop.

To enable these tools, you need to first enable the Playground page of the
Preferences dialog. Do it by running GIMP with a ‘—show-playground.’ switch
(for Windows, you might want tweaking the path to GIMP in the shortcut properties
accordingly). Then you need to go to Edit -> Preferences -> Playground and
enable the respective options, so that the tools would show up in the toolbox.

We need to stress again that you should only do so either if you are very
curious, or (which we hope for) intend to help us fix them.

Contributors: Marek Dvoroznak, Barak Itkin, Jehan Pagès, Michael Natterer…

OpenCL now considered experimental¶

Since GIMP 2.10.0, several GEGL operations have OpenCL code paths,
hopefully allowing faster processing. Unfortunately OpenCL situation is
not so idyllic because of the lack of contributions to improve our code
as well as faulty drivers.

In various cases, enabling OpenCL in GIMP could lead to instability. We
decided it was not acceptable anymore and moved the feature into the
Playground tab of the Preferences dialog. Technically it means that
the feature is hidden unless you run GIMP with
command line option, so that anyone enabling this is really aware of the
instability of the feature. Hopefully we will be able at some point to
move this back into mainline Preferences.

Comparing images

image.hash();

By default the hash is returned as base 64. The hash can be returned at another base by passing a number from 2 to 64 to the method:

image.hash(2);

There are 18,446,744,073,709,551,615 unique hashes. The hamming distance between the binary representation of these hashes can be used to find similar-looking images.

To calculate the hamming distance between two Jimp images based on their perceptual hash use:

Jimp.distance(image1, image2);
var diff =Jimp.diff(image1, image2, threshold);diff.image;diff.percent;

Using a mix of hamming distance and pixel diffing to compare images, the following code has a 99% success rate of detecting the same image from a random sample (with 1% false positives). The test this figure is drawn from attempts to match each image from a sample of 120 PNGs against 120 corresponding JPEGs saved at a quality setting of 60.

var distance =Jimp.distance(png, jpeg);var diff =Jimp.diff(png, jpeg);if(distance <.15||diff.percent<.15){}else{}

You can also calculate the raw pHash (no padding or custom base). You can then use this in to calculate the hash distance from a loaded image.

consthash1=image1.pHash();consthash2=image2.pHash();image2.distanceFromHash(hash1);Jimp.compareHashes(hash1, hash2);

What is my “GIMP profile” and where do I find it?¶

The “GIMP profile” is a directory/folder (actually a directory tree) where GIMP keeps information that pertains to you, the user:

  • your windows and dialogs setup
  • your settings and presets for some tools
  • your keyboard shortcuts
  • your brushes, gradients, palettes, patterns, fonts, scripts, plugins and brush dynamics (as opposed to those installed for the benefits of all users).

Locating the GIMP (2.8) profile

Since it is a personal folder, GIMP keeps it with others files that also belong to you, usually:

  • In Windows XP:

    (ie, a “sibling” of “Application Data” and “My Documents”)

  • In Vista, Windows 7 and later versions:

    (ie, a “sibling” of “Application Data” and “My Documents”)

  • In Linux:

    (a.k.a. )

  • In OSX:

    or possibly

    (this could depend on the GIMP build you use).

The part is of course version-dependent (or you may still be using ).
If you run several versions in parallel, you will have a profile for each, i.e., distinct profiles for GIMP 2.6 and GIMP 2.8, while all the successive updates to GIMP 2.8 will use the same profile.

If you don’t find it in the locations above

  • If you are on Linux or OSX, keep in mind that the leading dot in the name makes many tools “omit” to display it,
    so you may have to explicitly ask your file explorer to display hidden files to navigate to it.
  • On all systems (and especially Windows versions), it can be elsewhere for several reasons,
    for instance because the user profile has been moved to another partition/drive (especially with “roaming” users).

Here are two tricks to find it (they both assume that GIMP can run):

Trick #1
  • Edit → Preferences and open the Folders tree in the left pane of the dialog.
  • If you click on any of the folders (for instance, Brushes), the right pane will normally display two folders:
    • The non-writable one is the one that holds system-wide features (brushes in this case), located somewhere in the GIMP installation tree
    • The writable one is your own brushes folder in your GIMP profile: the GIMP profile is its parent folder.
Trick #2
  • Open Filters/Python-fu/Console
  • Enter this: and strike 

When to use the GIMP profile

Your GIMP profile is the right place to install additional material (scripts, plugins, brushes, palettes, fonts, gradients…).
It is a much better place than the system GIMP installation folder:

  • Installing things there will not require admin privileges
  • The additional items will not be wiped out by a GIMP re-installation
  • They are more likely to be backed up since they are part of the user’s data

Repairing the GIMP profile

GIMP Startup failures can be caused by profile problems. In that case it is pointless to re-install GIMP,
since the re-installed version will re-use the existing profile and therefore fail in the same way.

It is usually much more efficient to just rename the profile (to , for instance) and restart GIMP.
GIMP will recreate a new profile directory on startup, which should fix any problems.

You can then copy your add-ons subdirectories to the new profile, checking periodically that GIMP will still start
with that modified profile.

GIMP Tutorial — Your GIMP Profile and You by Ofnuts is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

Установка программы

После того как вы скачаете установочный файл и сохраните его на жёстком диске, выполните установку программы.

  1. В открывшемся окне установщика первым делом выберите удобный для вас язык. Всего их представлено 9, и, если ваш компьютер имеет русскоязычное меню, русский язык будет выбран по умолчанию.
  2. Чтобы проконтролировать, какие компоненты будут установлены, а также выбрать нужные вам, нажмите кнопку «Настроить» в левом нижнем углу окна установщика. 
  3. Сразу же выскочит пользовательское соглашение, с которым необходимо согласиться. Оно написано на английском и, если вы не владеете ним, просто нажмите кнопку подтверждения, там ничего страшного не написано. Даже если вы знаете английский и полностью прочитали пользовательское соглашение, но с чем-то несогласны, у вас нет другого выбора, кроме как согласиться, иначе установка будет прервана. 
  4. В следующем окне — «Выбор компонентов» — отметьте галочкой те элементы, которые вы хотите использовать в работе. Если вы не хотите слишком долго разбираться, какой компонент за что отвечает, выберите «Полная установка». Если же считаете, что чем-то можно пренебречь, снимите с того пункта отметку. Кроме того, во всплывающем меню можно выбрать несколько пакетов установки: полный, весом почти 300 мегабайт, либо компактный — 128 МБ. После выбора нажмите кнопку «Далее». 
  5. В следующем окошке — «Выбор файловых ассоциаций» — выберите те файлы, которые бы вы хотели открывать редактором Gimp по умолчанию. Утилита автоматически отмечает несколько родных для программы форматов. Если вы хотите применять редактор для других файлов, отметьте их галочками, после чего также нажмите кнопку «Далее». 
  6. В следующем окне вам будет предложено вывести ярлык для быстрого запуска на рабочий стол и панель быстрого запуска. Если вы в них не нуждаетесь, снимите галочки. Для перехода на следующий этап нажмите «Далее». 
  7. В последнем окне выберите папку, куда вы хотите установить Gimp. Нажмите кнопку «Установить» и дождитесь окончания процедуры. 
  8. Запустите программу и подождите некоторое время, пока загрузятся все необходимые компоненты программы. 

После того как графический редактор Gimp будет установлен на ваш компьютер, можно приступать к работе с ним. В следующем пункте мы проведём обзор меню программы. Если вы ищите руководство по выполнению конкретных задач, на нашем сайте вы сможете найти посвящённую этому серию статей.

The Perl Server and stand-alone scripts¶

So far the scripts have all been started from the menu structure within GIMP. But using Gimp::Fu there is another possibility, and that is to run the scripts from the command line, as a normal Perl program. When run this way the script tries to connect to the Perl-Server, and if it fails it will launch a GIMP of its own. If you plan to run several scripts this way, it is obviously much faster to run the Perl-Server since launching GIMP takes quite a bit of time. The Perl-Server may be started from the Filters/Perl menu.

When a Gimp::Fu script is run from the command line, the result is the same as when it is run through the menus, except that it may be run with the --output parameter. This will save the result to a file instead of displaying it within GIMP. This is great for batch creation of logos, etc.

The filename for the --output has some special magic that allows to set some special image saving parameters, like interlace, quality factor, etc. See the for more detail

Here are two invocations of the scripts declared above, but with output written to a jpg file and a png file.

perl-gimp-from-shell
  uni -o /tmp/uni.png --size 100 --color purple
  basic-logo --font 'utopia 100' -o /tmp/bl.ppm --size 20 --text "Perl rules" 

Another important use of this interface is that it enables running the Perl debugger on the perl scripts.

10.1. A shell for Gimp-Perl

When using the Perl-Server it is not necessary to use Gimp::Fu and the podregister function. Instead you may call Gimp::on_net, which takes as a parameter a reference to a sub routine that is called when your script has connected to a GIMP (or started one up).

For a simple but powerful example of the use of the Gimp without Fu, here is a an interactive Gimp-Perl shell that may be run from the command line:

pg-shell

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#!/usr/bin/perl

#  An interactive command line shell to GIMP.
use Gimp;
use Term::ReadLine;

Gimp::on_net {
   $term = new Term::ReadLine("Gimp");
   while( defined ($_ = $term->readline("Gimp> "))) {
        $res = eval($_) . "\n";
        print("Error: $@"), next if $@;
        print "\n";
        Gimp->displays_flush();
    }
 };

 exit Gimp::main;

Here is an example of an interactive session with this shell:

interact
  Gimp> $img = Gimp::Image->new(100,100,RGB)
  Gimp> $drw = $img->layer_new(100,100,RGB_IMAGE, "bg", 100, NORMAL_MODE)
  Gimp> $img->insert_layer($drw,-1, 0)
  Gimp> Gimp::Display->new($img)
  Gimp> $drw->edit_clear
  Gimp> print Gimp::Image->list
  Gimp::Image->existing(1) 

Source for version 2.10 (Stable)

GIMP releases available from gimp.org and its contain the source code and have to be compiled in order to be installed on your system.

For instructions, how to build GIMP from source code, please see this page.

GIMP 2.10.22 is now available at https://download.gimp.org/mirror/pub/gimp/v2.10/. You may want to read the Release Notes for GIMP 2.10.

To allow you to check the integrity of the tarballs, here are the hashes of the latest releases:

gimp-2.10.22.tar.bz2
(sha256):
2db84b57f3778d80b3466d7c21a21d22e315c7b062de2883cbaaeda9a0f618bb
gimp-2.10.20.tar.bz2
(sha256):
e12f9f874b1a007c4277b60aa81e0b67330be7e6153e5749ead839b902fc7b3c
gimp-2.10.18.tar.bz2
(sha256):
65bfe111e8eebffd3dde3016ccb507f9948d2663d9497cb438d9bb609e11d716
gimp-2.10.16.tar.bz2
(sha256):
cbf9fe9534b913a9487b00cd9710cbc569bfd71fdd2f8c321547701a7d70cbeb
gimp-2.10.14.tar.bz2
(sha256):
df9b0f11c2078eea1de3ebc66529a5d3854c5e28636cd25a8dd077bd9d6ddc54
gimp-2.10.12.tar.bz2
(sha256):
7d80b58e0784120d57d327294f6a1fda281ff51a61935c2cd764da281acaac71
gimp-2.10.10.tar.bz2
(sha256):
12d1f243265c7aee1f2c6e97883a5c90ddc0b19b4346cf822e24adbb6c998c77
gimp-2.10.8.tar.bz2
(sha256):
d849c1cf35244938ae82e521b92b720ab48b8e9ed092d5de92c2464ef5244b9b
gimp-2.10.6.tar.bz2
(sha256):
4ec8071f828e918384cf7bc7d1219210467c84655123f802bc55a8bf2415101f
gimp-2.10.4.tar.bz2
(sha256):
ffb0768de14a2631b3d7ed71f283731441a1b48461766c23f0574dce0706f192
gimp-2.10.2.tar.bz2
(sha256):
1cb0baaecdefe44d371a15f2739a1bcbce4682336b4ccf8eb7b587ce52c333eb
gimp-2.10.0.tar.bz2
(sha256):
7fcc96fb88cb0a0595d2610f63a15dec245bb37bf9db527d37a24fb75e547de2

GIMP help files are available at https://download.gimp.org/mirror/pub/gimp/help/.

Please consider using one of the mirrors listed below.

Linear color space workflow¶

Another benefit of using GEGL is being able to work on images in a linear RGB
color space as opposed to gamma-corrected (perceptual) RGB color space.

Here is what it boils down to:

  • You now have both linear and perceptual versions of most blending modes.
  • There is now a linear version of the Color Invert command.
  • You can freely switch between the two at any time via Image > Precision submenu.
  • You can choose which mode is displayed in the Histogram docker.
  • You can apply Levels and Curves filters in either perceptual or linear mode
  • When higher than 8-bit per channel precision is used, all channels data is linear.
  • You can choose whether the gradient tool should work in perceptual RGB, linear
    RGB, or CIE LAB color space

Contributors: Michael Natterer, Øyvind Kolås, Ell…

File formats support¶

GIMP is now capable of reading and writing TIFF, PNG, PSD, and FITS files with
up to 32-bit per channel precision where applicable.

The PSD plug-in additionally supports pass-through, hard mix, pin light, vivid
light, and linear light blending modes.

GIMP now also ships with native WebP support, including features like animation,
ICC profiles, and metadata. Both importing and exporting are supported.

The JPEG 2000 plug-in was rewritten to use the OpenJPEG library rather than
the somewhat obsolete Jasper library.

Finally, the PDF plug-in now supports importing password-protected files (you
need to know the password) and exporting multipage PDF documents (each layer
will be a page).

Contributors: Michael Natterer, Mukund Sivamaran, Ell, Jehan Pagès,
Lionel N, Darshan Kadu…

Tools¶

Unified Transform

Your browser does not support the video tag.

New Unified Transform tool simplifies making multiple transforms, such as
scaling, rotating, and correcting perspective in one go. The design is based
on a functional spec written by our former UX expert Peter Sikking.

Contributors: Mikael Magnusson…

Warp Transform

The new Warp Transform tool allows doing localized transforms like growing or
shifting pixels with a soft brush and undo support. Such tools are commonly used
in fashion photography for retouching.

Your browser does not support the video tag.

As such, the new tool retires the old iWarp filter that was innovative at the
time of its inception (and pre-dated Photoshop’s Liquify filter), but was
ultimately cumbersome to use. The Warp Transform tool also features an
Eraser mode to selectively remove changes, previously unavailable in the
iWarp filter.

Contributors: Michael Muré, Michael Natterer, Jonathan Tait…

Handle Transform

The new Handle Transform tool provides an interesting approach at applying
scaling, rotating, and perspective correction using handles placed on the
canvas. People who are used to editing on touch surfaces might find this tool
strangely easy to grasp.

Contributors: Johannes Matschke, Michael Natterer, Ell…

Blend tool becomes Gradient tool and gets on-canvas editing

We renamed the Blend tool to Gradient tool and changed its default shortcut
to G. But this pales in comparison to what the tool can actually do now, and
it’s a lot.

The new tool pretty much obsoletes the old Gradient Editor dialog. Now you can
create and delete color stops, select and shift them, assign colors to color
stops, change blending and coloring for segments between color stops and create
new color stops from midpoints right on the canvas.

Your browser does not support the video tag.

All gradients available by default are also “editable” now. What it means is
that when you try to change an existing gradient from a system folder, GIMP will
create a copy of it, call it a Custom Gradient and preserve it across
sessions. Unless, of course, you edit another ‘system’ gradient, in which case
it will become the new custom gradient.

We intend to use the generic implementation of this later for brushes and other
types of resources.

Contributors: Michael Henning, Michael Natterer, Ell, Øyvind Kolås…

ИНСТРУМЕНТЫ ВЫДЕЛЕНИЯ

Прямоугольное выделение (R) – инструмент позволяющий выделять на изображении прямоугольные области (Вызывается нажатием горячей клавиши на клавиатуре – R).

Эллиптическое выделение (E) – создает выделение круглого или овального типа.

Свободное выделение (F) – выделение областей на изображениями произвольными линиями или отрезками.

Выделение смежных областей (U) – инструмент позволят выделять области на изображении схожие по цвету, еще можно встретить другое название этого инструмента – «Волшебная палочка».

Выделение по цвету (Shift+O) – выделение областей с заливкой схожего цвета.

Умные ножницы (I) – инструмент позволяющий создавать выделения с функцией распознавания границ краев выделяемой области или фигуры.

Выделение переднего плана – выделение области содержащей объекты или фигуры на переднем плане изображения

GIMP for Unix-like systems

The flatpak link above should open your software installer and prompt you to install GIMP (available platforms: i386, x86-64, ARM and AArch64). It may not work out-of-the-box on some platforms since the flatpak technology is new. If that is the case, ensure flatpak is installed and if clicking the link still does not prompt to install GIMP, then manually install by command line:

The flatpak build is very new and therefore may have shortcomings. It’s very likely your Unix-like system distribution already comes with a GIMP package. It is the preferred method of installing GIMP, as the distribution maintainers take care of all the dependencies and bug fix updates. Nevertheless, note that many distros decide to pin a specific version of GIMP to their releases, whereas our flatpak will follow GIMP releases closely.

GIMP can also run on Solaris and is available for the BSD family of systems such as FreeBSD and OpenBSD.

Возможности редактора Gimp

Графический редактор Gimp позволяет выполнять широкий спектр операций с различными изображениями. Он поддерживает большое количество форматов, имеет множество предустановленных фильтров, кистей и шаблонов. Если вас не устраивает изначальный функционал, его можно расширить за счёт дополнительных модулей. Итак, что же умеет программа?

  • Создание и продвинутая обработка графических файлов, фотографий, логотипов, рисунков. Можно менять размер, редактировать цвет, соединить несколько фото в одно, настраивать уровень яркости, контрастности, цветового баланса, искажений, преобразовывать картинки из одного формата в другой.
  • Поддержка родного формата XCF, а также JPG, JPEG, GIF, TIFF, PNM, MPEG, PNG, TGA, TIF, PS, XPM, BMP, SGI, PDF, ICO, PCX и множества других. И также предоставляется ограниченная поддержка PSD — оригинального формата Photoshop.
  • Рисование. Для создания полноценных рисунков доступен полный набор рабочих инструментов, включающих карандаши, кисти, штампы и другие. Каждый элемент можно тонко настроить, изменить толщину и форму линий, а также прозрачность. 
  • Создание многослойных проектов. Каждый элемент может наноситься в виде отдельного слоя, который затем в случае необходимости очень легко удалить или подкорректировать. А также доступна полная настройка альфа-канала.
  • Полный набор инструментов для преобразования и трансформации: наклон, масштаб, поворот, вращение, отражение.
  • Выделение фрагмента изображения. Доступны такие инструменты выделения, как фрагмент свободной формы, эллипс, прямоугольник, а также интеллектуальное выделение.
  • Поддержка сканеров и графических планшетов.
  • Большое количество встроенных фильтров, возможность как поштучной, так и пакетной обработки файлов. 
  • История. Все ваши действия хранятся в разделе «История», благодаря чему вы сможете отслеживать все выполненные изменения.
  • Анимация. Обработка анимационных файлов формата MNG. Каждый кадр обрабатывается как отдельный слой.
  • Многоязычное меню, включая качественный перевод на русский и украинский языки.
  • Детальная настройка интерфейса, возможность работать в классическом многооконном меню, так и в более привычном для новичков однооконном.
  • Интеграция внешних инструментов, разработанных специально для редактора Gimp.
  • Автоматизация ваших операций за счёт скриптов, написанных на языках Perl, Python и Script-Fu.

A simple example¶

(define (simple-unsharp-mask filename
                              radius
                  amount
                  threshold)
   (let* ((image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
          (drawable (car (gimp-image-get-active-layer image))))
     (plug-in-unsharp-mask RUN-NONINTERACTIVE
                       image drawable radius amount threshold)
     (gimp-file-save RUN-NONINTERACTIVE image drawable filename filename)
     (gimp-image-delete image)))

This simple script takes a filename and some numeric parameters. It opens the respective file, applies the Unsharp Mask filter and saves the image again (be careful, for the sake of simplicity this script overwrites the original image). It does all this w/o any user interaction, so we can run it without any user interface. In order to do that, save the script with the .scm extension in the ~/.gimp-2.4/scripts directory. Then run it like this:

gimp -i -b '(simple-unsharp-mask "foo.png" 5.0 0.5 0)' -b '(gimp-quit 0)'

There is a catch here: Some plugins or Script-Fu scripts create new layers and then flatten the image again. This changes the drawable ID. If this is the case insert the following line to get the current drawable ID just before saving the image:

(set! drawable (car (gimp-image-get-active-layer image)))

End notes¶

This tutorial has covered only a small part of the possibilities available to a script writer. In particular the following issues available to Gimp::Perl scripts have not been covered:

  • The possibility of writing customized Gtk interfaces (see examples/example-no-fu in the Gimp-Perl distribution).
  • Writing fully-fledged plug-ins that manipulate the tile data through the Perl Data Language (PDL) module (see examples/map_to_gradient in the Gimp-Perl distribution).
  • Using Gimp-Perl in a CGI environment.
  • How to fill with gradients in a plugin (see examples/randomblends in the Gimp-Perl distribution).
  • How to do polygon selections (see examples/triangle in the Gimp-Perl distribution).

The Gimp-Perl distribution also has over 50 more example scripts supplied. Take a look through those for further inspiration!

Support Core Team Developers Directly¶

While we don’t raise funds to sponsor development of GIMP as an organization at this time, we encourage our contributors to run personal fundraisers. Currently there are two such projects.

Øyvind Kolås uses Patreon to raise funds for his work on GEGL, GIMP’s new sophisticated image processing core. This work is crucial to implement features such as non-destructive editing in GIMP, including features known as adjustment layers and layer effects in similar software. Øyvind is the primary developer of GEGL who has been working on it since mid-2000s.

Jehan Pagès runs another Patreon-hosted campaign to raise funds for a GIMP-powered animated movie, ZeMarmot. Part of the funds is spent on development of advanced animation features in GIMP and various other features for professional graphics usage. Jehan is one of the most active contributors to GIMP in recent years who has fixed countless bugs.

How You Can Help¶

GIMP is Free Software and a part of the GNU Project. In the free software world, there is generally no distinction between users and developers. As in a friendly neighbourhood, everybody pitches in to help their neighbors. Please consider the time you give in assistance to others as payment.

Ways in which you can help:

  • program new features,
  • report bugs (errors in the program),
  • test existing features and provide feedback,
  • add documentation,
  • translate GIMP to your own language,
  • translate the documentation,
  • write tutorials,
  • improve this website,
  • make artwork for GIMP,
  • let people know you used GIMP for your artwork,
  • give away copies of GIMP,
  • help others to learn to use GIMP, etc.

As you can see, anyone can help.

Development Status

The team is currently busy working on v3.0. This will be a port of GIMP to
GTK+3, much newer and better supported version of the user interface toolkit.

Most of GIMP’s source code is related to the user interface, so this port is a
major undertaking, especially since we shall break API and refactor numerious
parts of the program.

We still need to port more plugins to become GEGL operations. If you are willing
to help with that, please refer to the Porting filters to GEGL
page to see what you could work on.

To get a better understanding of where the project is heading to, which features
are planned etc., please visit the Roadmap page.

Bug Reports

GIMP is not a bug-free application nor is any other application so reporting the bugs that you will encounter is very important to the development, it helps the developers to make GIMP more stable and more bug free.

You don’t have to be a developer or a everyday user to report bugs. It can be hard to report a bug the first time you try it out but don’t just quit the whole bug report if you think it is hard. Instead, look at the bugs page you will find some very good help about this.

Web Development

Creating websites that contain useful information is very important. It is actually just as important as doing bug reports. A website contains a lot of information that is needed for the development to move on and it also contains information that will help the public to understand what the application is all about.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector