- How to install libpng and zlib
- 2 Answers 2
- Install package «png» in R/ubuntu
- 3 Answers 3
- Not the answer you’re looking for? Browse other questions tagged r ubuntu libpng or ask your own question.
- Linked
- Related
- Hot Network Questions
- Subscribe to RSS
- Сохранение изображения с помощью libpng
- Fixing the ‘Undefined Reference’ Errors for C/C++ Projects
- Pngquant — утилита командной строки для сжатия изображений PNG в Linux
- Основные возможности Pngquant:
- Установка
- Установка
- Установка Pngquant из исходного кода
- Установка Pngquant с помощью Cargo
- Сжатие изображений PNG в Linux с помощью Pngquant
- Сжатие изображения PNG
- Отображение сообщений о процессе во время сжатия
- Сжатие нескольких изображений PNG
- Изменение суффикса имени выходного файла
- Отмена сохранения файлов, если размер сжатых файлов превышает размер исходных файлов
- Сохранение конвертированных файлов в другом месте
- Сжатие изображений в нестандартном качестве
- Очистка метаданных изображения
How to install libpng and zlib
I’m completely new to Ubuntu. I got installed it because my school uses a lot of Linux type stuff in my school’s Computer Science program so I figured I would use Ubuntu on my own machine and just do my code from there instead of the computer labs. However, I’m having a lot of trouble trying to install the numerous packages that aren’t included natively on Ubuntu. Can someone help me install the PNG library, libpng and zlib. This is just one of many things I need to get on here but I think I need to first start off with this. I did download both packages, did the tar xf thingy on the download, and looked at the README files for insight on installing the software. I get weird errors though. I first tried installing libpng and the terminal was like zlib isn’t installed so I was like ok, I’ll just get zlib but permission is denied. Do I need to get root or something? I remember seeing people say root before, but I don’t know if it is relevant. I’m really new so I don’t understand a lot of these things and it’s kinda scary. Please help.
2 Answers 2
Open terminal by Ctrl Alt T
dfsg-0ubuntu3) but 9.10
dfsg-0ubuntu10.4 is to be installed
Ubuntu uses a thing called apt , which is a package manager. It installs, manages, upgrades, and removes programs. If at all possible, you should try to install programs via Ubuntu Software Center. What you were likely attempting to do was install from source, which is only recommended if you know what you’re doing.
Try to get out of the Windows mentality, which is to search google and download an installer. The Ubuntu Software Center searches Ubuntu’s online repositories, which are generally guaranteed to work. Programs installed via Software Center or apt will also be updated automatically by Ubuntu’s Software Updater.
You can install libpng from the Software Center by searching libpng and choosing «PNG Library — runtime». Or from here libpng12-0 by clicking «available on the Software Center». Or using sudo apt-get install libpng12-0 from a terminal.
The zlib1g package should be installed automatically when you install libpng12-0 , because it is one of the libpng12-0 package’s dependencies. The package manager apt installs all of a package’s dependencies before it installs the package.
Источник
Install package «png» in R/ubuntu
(Under ubuntu), I try:
I thought it has to due with libpng being obselete but I have already installed it from this link using:
so I don’t really know what more to do
3 Answers 3
I faced the same problem today. As suggested here, I resolved the problem by first launching R with sudo , and then simply doing install.packages(‘png’) .
You may be missing the libpng* headers in order to build from source. On my machine(s), I have package libpng12-dev installed. Ensure you have it too, and then try installing png again.
so your default build of R should already have the ability to create png files.
The key point is here dyn.load(file, DLLpath = DLLpath, . ) , it could not find png.so in your DLLpath. DLL are also called ‘dynamic shared objects’ (‘DSO’) in Unix-alikes systems. The DLLpath can be added by $LD_LIBRARY_PATH in .bashrc / .bash_profile .
When you install libpng,
then add export LD_LIBRARY_PATH=/home/usrname/lib:$LD_LIBRARY_PATH to your .bashrc / .bash_profile I hope I had made it clear.
Not the answer you’re looking for? Browse other questions tagged r ubuntu libpng or ask your own question.
Linked
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.10.8.40416
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
Источник
Сохранение изображения с помощью libpng
Развлекаясь на досуге с OpenGL, решил научиться делать скриншоты средствами программы, а не системы. Довольно быстро нагуглил функцию glReadPixels, но вот с сохранением картинки вышла проблема. Вспомнил былые времена, когда полностью своим кодом сохранял в bmp, нашел функцию сохранения в tga, понял, что все эти варианты попахивают велосипедизмом и решил использовать широко распространенную библиотеку. Выбор пал на libpng.
Дальше пошли грабли.
Оказалось, что никакого описания библиотеки на русском языке нет (собственно поэтому и пишу сейчас этот пост), а английская документация написана не самым удобным образом и не содержит даже простейшего полноценного примера использования.
Ниже я постараюсь объяснить, как средствами libpng сохранить изображение в простейшем случае.
Прежде всего надо подключить заголовочный файл
В функции/методе, в которой будем сохранять изображение, откроем файл, в который будем сохранять и создадим структуру png.
Теперь нужно создать структуру информации о png, вызвать setjmp, на случай ошибок и инициализировать вывод в файл.
Дальше нужно установить параметры изображения (размеры, количество цветов, количество битов на канал цвета, черезстрочность и сжатие. А также сформировать изображение и массив указателей на отдельные строки изображения.
Тут начинаются грабли.
Грабли №1: функция glReadPixels отдает изображение, строчки в котором идут снизу вверх, хотя обычно работая с графикой мы подразумеваем обратный порядок.
Грабли №2: если указать функции glReadPixels, что мы хотим получить цвета RGBA, то на самом деле мы получим их в порядке ARGB. Досадно, но на то, чтобы выяснить это, у меня ушел час, в течении которого я не понимал, почему у меня не правильно отображаются цвета на скриншоте.
Объявим массив data, в котором будут данные для libpng, и массив argb_data, в котором будут данные от OpenGL, ну и не забудем про массив указателей rows.
Теперь дело за малым — сохранить изображение, завершить ввод и обработать ошибки.
Таким, относительно несложным образом можно сохранить изображение в png. Однако, не думайте, что это все, на что способна эта библиотека. Можно следить за процессом сохранения, применять фильтры, использовать черезстрочность, сжатие… Но чтобы разобраться с этим стоит читать оригинальную документацию.
UPD. Спасибо MrGobus за замечание по поводу glReadPixels и порядка строк.
Источник
Fixing the ‘Undefined Reference’ Errors for C/C++ Projects
This tutorial shows how to various problems related to missing symbols in C/C++ projects. We will create a basic project calling the png_create_read_struct() function from the libpng library and will go through common missing setup steps, explaining the errors that will arise.
Before you begin, install VisualGDB 5.4 or later.
- Start Visual Studio and locate the VisualGDB Linux Project Wizard:
- Pick a name and location for your project:
- Press “Create” to launch the VisualGDB-specific part of the wizard. On the first page, pick Create a new project -> Application -> MSBuild:
- In this tutorial we will use a cross-toolchain that runs on Windows and builds code for a Linux target and will demonstrate points of failure caused by this configuration. However, most of the steps shown below will work for projects built directly on Linux as well:
- Press “Finish” to generate the project. Now we will try calling a function from the libpng library and will go through most possible missing steps that could cause a build-time or run-time error. Add the following code to the main() function and try building the project:
Источник
Pngquant — утилита командной строки для сжатия изображений PNG в Linux
Оригинал: Pngquant – A Command-line Utility To Compress PNG Images On Linux
Автор: sk
Дата публикации: 27 августа 2019 года
Перевод: А. Кривошей
Дата перевода: декабрь 2019 г.
Pngquant — это бесплатная кроссплатформенная утилита командной строки с открытым исходным кодом для сжатия PNG с потерями. Она основана на переносимой библиотеке libimagequant и написана на C99. Она позволяет значительно уменьшить размер файла за счет преобразования изображения PNG в более эффективный 8-разрядный формат PNG и полностью сохраняет альфа-прозрачность. Как вы, возможно, уже знаете, 8-битные PNG-файлы часто на 60-80% меньше, чем 24/32-битные PNG-файлы. Изображения, сжатые с помощью Pngquant, полностью совместимы со всеми веб-браузерами и операционными системами. Pngquant может сжимать одно или несколько изображений одновременно.
Основные возможности Pngquant:
— поддержка пакетного преобразования нескольких файлов PNG;
— генерация высококачественной генерация палитры;
— использует алгоритм квантования Median Cut для оптимизации изображений;
— может быть легко интегрирована со скриптами оболочки, графическими интерфейсами и серверным программным обеспечением;
— конвертирует изображения с заданным качеством и пропускает изображения, которые нельзя конвертировать с требуемым качеством;
— поддержка многоядерности и оптимизация Intel SSE.
Установка
Pngquant может быть установлена разными способами.
Установка
Установка Pngquant из репозитория дистрибутива
Pngquant доступен в репозиториях по умолчанию большинства дистрибутивов Linux.
В Arch Linux и его вариантах Pngquant доступен в репозитории [Community]. Включите репозиторий Community и установите ее, используя Pacman, как показано ниже.
В Debian, Ubuntu, Linux Mint:
В Ubuntu и системах на его основе вам необходимо активировать репозиторий [Universe], чтобы установить Pngquant.
Активация репозитория Universe выполняется с помощью команды:
Проверьте версию установленной Pngquant:
Версия Pngquant, доступная в репозиториях по умолчанию, может быть старой. Если вы хотите самую последнюю версию, скомпилируйте и вручную установите ее из исходного кода, как показано ниже.
Установка Pngquant из исходного кода
Сначала установите необходимые зависимости.
В Debian, Ubuntu:
В CentOS, Fedora:
Далее, клонируйте репозиторий git последней версии Pngquant:
Приведенная выше команда загрузит содержимое репозитория Pngquant GitHub и сохранит его в папке с именем «pngquant» в вашем текущем рабочем каталоге.
Перейдите в каталог pngquant:
Наконец, выполните следующие команды для компиляции и установки Pngquant:
Pngquant по умолчанию будет установлен в папку /usr/local/bin. Если вы хотите установить его в другой каталог, выполните команду:
Замените «dir» на ваш путь. Сначала нужно выполнить эту команду, а затем выполнить команду «sudo make install».
Проверьте версию Pngquant:
Установка Pngquant с помощью Cargo
Pngquant также можно установить с помощью диспетчера пакетов Cargo. Сначала установите Rust, как описано по ссылке ниже.
Клонируйте репозиторий git с последней версией Pngquant:
Наконец, соберите и установите Pngquant, используя Cargo, как показано ниже.
Для других способов установки, пожалуйста, обратитесь к официальной странице установки Pngquant .
Сжатие изображений PNG в Linux с помощью Pngquant
Использование Pngquant тривиально и не требует специальных навыков.
В моем текущем каталоге у меня есть файл PNG с именем «ostechnix.png». Позвольте мне показать вам его размер.
Как видите, размер изображения составляет 152 Кб.
Сжатие изображения PNG
Теперь давайте сожмем это изображение, используя команду:
Приведенная выше команда сожмет файл ostechnix.png и сохранит его как новый файл с именем «ostechnix-fs8.png». По умолчанию Pngquant будет использовать имя выходного файла, такое же, как имя входного файла с суффиксом -or8.png или -fs8.png в конце. Это означает, что исходный файл не будет перезаписан. Если вас не устраивает степень сжатия, просто удалите сжатый файл.
Давайте еще раз проверим размер сжатого файла изображения:
Видите? Pngquant уменьшил размер изображения со 152К до 48К. Это действительно хорошая работа. Откройте изображение с помощью любой программы для просмотра изображений и сравните их. Вы не найдете большой разницы в качестве между оригинальным и сжатым изображениями. Оба изображения будут выглядеть почти одинаково!
Отображение сообщений о процессе во время сжатия
По умолчанию Pngquant не будет отображать то, что происходит за кулисами при сжатии изображений. Если вы хотите просмотреть сообщение о состоянии процесса, используйте следующую команду:
Теперь вы увидите прогресс во время сжатия.
Сжатие нескольких изображений PNG
Pngquant также может конвертировать несколько изображений сразу. Следующая команда сжимает picture1.png и picture2.png в текущем рабочем каталоге.
Также мы можем переместить все файлы в каталоге и сжать их за один раз. Например, чтобы преобразовать все изображения в папке с именем «/home/sk/images», выполните:
Изменение суффикса имени выходного файла
Как я уже сказал, имя выходного файла совпадает с именем входного, за исключением того, что оно заканчивается на «-fs8.png», «-or8.png». Однако вы можете изменить суффикс, как вы хотите.
Эта команда сожмет файл ostechnix.png и сохранит его как ostechnixlinux.png.
Отмена сохранения файлов, если размер сжатых файлов превышает размер исходных файлов
Зачем нужно сжатие, если преобразованные файлы больше исходных файлов? Такое преобразование не нужно, поэтому мы можем пропустить его, как показано ниже.
Приведенная выше команда сохранит преобразованный файл, только если он меньше исходного.
Сохранение конвертированных файлов в другом месте
По умолчанию Pngquant сохраняет входные и выходные файлы изображений в одной директории. Если вы хотите сохранить выходной файл в другом месте, команда будет следующей:
Эта команда сожмет ostechnix.png и сохранит его как output.png в каталоге Documents.
Сжатие изображений в нестандартном качестве
Pngquant сжимает изображения в максимально возможной степени. Мы также можем вручную установить качество изображения. Pngquant позволяет нам устанавливать качество изображения в диапазоне от 0 (наихудшее) до 100 (идеальное), используя параметры min и max.
В следующем примере минимальное качество изображения устанавливается равным 60, а максимальное — 80.
Если качество преобразования ниже минимального, изображение не будет сохранено.
Очистка метаданных изображения
Метаданные изображения — это набор данных о нем. Они включают в себя всю информацию об изображении, такую как формат изображения, настройки камеры, DPI, дата и время изображения, заголовок и комментарии, геолокация и многое другое. Обратитесь к приведенной ниже статье, чтобы узнать, как просматривать метаданные изображения.
Если у вам не нужны метаданные, вы можете просто удалить их, используя pngquant, как показано ниже.
Для получения более подробной информации см. справочную страницу pngquant.
Я использую Pngquant уже много лет. Он очень помогает мне сжимать изображения PNG до 70% и более. Если вы ищете оптимизатор изображений PNG, Pngquant может быть хорошим выбором.
Источник