[-]
[+]
|
Changed |
_service:tar_git:ImageMagick.spec
|
|
[-]
[+]
|
Changed |
_service
^
|
@@ -1,7 +1,7 @@
<services>
<service name="tar_git">
<param name="url">https://github.com/sailfishos-chum/ImageMagick.git</param>
- <param name="revision">7.1.1.23+obs1.1</param>
+ <param name="revision">7.1.1.28+obs1.0</param>
<!--
<param name="branch">obs</param>
-->
|
[-]
[+]
|
Deleted |
_service:tar_git:ImageMagick-7.1.1.23+obs1.1.tar.xz/upstream/Magick++/fuzz/build.sh
^
|
@@ -1,23 +0,0 @@
-#!/bin/bash -eu
-
-MAGICK_COMPILER=$CXX
-MAGICK_COMPILER_FLAGS=$CXXFLAGS
-MAGICK_INCLUDE="$WORK/include/ImageMagick-7"
-MAGICK_SRC="$SRC/imagemagick/Magick++/fuzz"
-MAGICK_LIBS_NO_FUZZ="$WORK/lib/libMagick++-7.Q16HDRI.a $WORK/lib/libMagickWand-7.Q16HDRI.a $WORK/lib/libMagickCore-7.Q16HDRI.a $WORK/lib/libpng.a $WORK/lib/libtiff.a $WORK/lib/libheif.a $WORK/lib/libde265.a $WORK/lib/libopenjp2.a $WORK/lib/libwebp.a $WORK/lib/libwebpmux.a $WORK/lib/libwebpdemux.a $WORK/lib/libsharpyuv.a $WORK/lib/libhwy.a $WORK/lib/libbrotlicommon.a $WORK/lib/libbrotlidec.a $WORK/lib/libbrotlienc.a $WORK/lib/libjxl_threads.a $WORK/lib/libjxl.a $WORK/lib/libturbojpeg.a $WORK/lib/libjpeg.a $WORK/lib/libfreetype.a $WORK/lib/libraw.a $WORK/lib/liblzma.a $WORK/lib/liblcms2.a $WORK/lib/libz.a"
-MAGICK_LIBS="$LIB_FUZZING_ENGINE $MAGICK_LIBS_NO_FUZZ"
-MAGICK_OUTPUT=$OUT
-MAGICK_FAST_BUILD=0
-
-. $MAGICK_SRC/build_dependencies.sh
-. $MAGICK_SRC/build_imagemagick.sh
-. $MAGICK_SRC/build_fuzzers.sh
-
-mkdir afl_testcases
-(cd afl_testcases; tar xvf "$SRC/afl_testcases.tgz")
-for format in gif jpg png bmp ico webp tif; do
- mkdir $format
- find afl_testcases -type f -name '*.'$format -exec mv -n {} $format/ \;
- zip -rj $format.zip $format/
- cp $format.zip "$OUT/encoder_${format}_fuzzer_seed_corpus.zip"
-done
|
[-]
[+]
|
Deleted |
_service:tar_git:ImageMagick-7.1.1.23+obs1.1.tar.xz/upstream/Magick++/fuzz/build_dependencies.sh
^
|
@@ -1,101 +0,0 @@
-#!/bin/bash -eu
-
-# build zlib
-pushd "$SRC/zlib"
-./configure --static --prefix="$WORK"
-make -j$(nproc) CFLAGS="$CFLAGS -fPIC"
-make install
-popd
-
-# Build xz
-pushd "$SRC/xz"
-./autogen.sh --no-po4a --no-doxygen
-./configure --disable-xz --disable-xzdec --disable-lzmadec --disable-lzmainfo --disable-lzma-links --disable-ifunc --disable-scripts --disable-doc --disable-shared --with-pic=yes --prefix="$WORK"
-make -j$(nproc)
-make install
-popd
-
-# Build png
-pushd "$SRC/libpng"
-cmake . -DCMAKE_INSTALL_PREFIX=$WORK -DPNG_SHARED=off
-make -j$(nproc)
-make install
-popd
-
-# Build libjpeg-turbo
-pushd "$SRC/libjpeg-turbo"
-CFLAGS="$CFLAGS -fPIC" cmake . -DCMAKE_INSTALL_PREFIX=$WORK -DENABLE_STATIC=on -DENABLE_SHARED=off
-make -j$(nproc)
-make install
-popd
-
-# Build libtiff
-pushd "$SRC/libtiff"
-autoreconf -fiv
-./configure --disable-shared --prefix="$WORK"
-make -j$(nproc)
-make install
-popd
-
-# Build liblcms2
-pushd "$SRC/Little-CMS"
-autoreconf -fiv
-./configure --disable-shared --prefix="$WORK"
-make -j$(nproc)
-make install
-popd
-
-# build libraw
-pushd "$SRC/libraw"
-autoreconf -fiv
-./configure --prefix="$WORK" --disable-shared --with-pic=yes --disable-examples PKG_CONFIG_PATH="$WORK/lib/pkgconfig" CXXFLAGS="$CXXFLAGS -DLIBRAW_USE_CALLOC_INSTEAD_OF_MALLOC=on"
-make -j$(nproc)
-make install
-popd
-
-# Build freetype2
-pushd "$SRC/freetype"
-./autogen.sh
-./configure --prefix="$WORK" --disable-shared PKG_CONFIG_PATH="$WORK/lib/pkgconfig"
-make -j$(nproc)
-make install
-popd
-
-# Build libde265
-pushd "$SRC/libde265"
-./autogen.sh
-./configure --disable-shared --prefix="$WORK"
-make -j$(nproc)
-make install
-popd
-
-# Build libheif
-pushd "$SRC/libheif"
-cmake . -DCMAKE_INSTALL_PREFIX=$WORK -DBUILD_SHARED_LIBS=off -DBUILD_TESTING=off -DWITH_EXAMPLES=off -DENABLE_PLUGIN_LOADING=off -DWITH_JPEG_DECODER=off -DWITH_JPEG_ENCODER=off -DCMAKE_BUILD_TYPE=Release
-make -j$(nproc)
-make install
-popd
-
-# Build webp
-pushd "$SRC/libwebp"
-./autogen.sh
-./configure --disable-shared --disable-png --disable-jpeg --disable-tiff --prefix="$WORK"
-make -j$(nproc)
-make install
-popd
-
-# Build openjpg
-pushd "$SRC/openjpeg"
-cmake . -DCMAKE_INSTALL_PREFIX=$WORK -DBUILD_SHARED_LIBS=off -DBUILD_CODEC=off -DCMAKE_BUILD_TYPE=Release
-make -j$(nproc)
-make install
-popd
-
-# Build libjxl
-pushd "$SRC/libjxl"
-cmake . -DCMAKE_INSTALL_PREFIX=$WORK -DBUILD_TESTING=off -DBUILD_SHARED_LIBS=false -DJPEGXL_FORCE_SYSTEM_LCMS2=true -DJPEGXL_ENABLE_EXAMPLES=false -DJPEGXL_ENABLE_FUZZERS=false -DJPEGXL_ENABLE_TOOLS=false -DJPEGXL_ENABLE_JPEGLI=false -DCMAKE_C_FLAGS="$CFLAGS" -DCMAKE_CXX_FLAGS="$CXXFLAGS"
-make -j$(nproc)
-make install
-cp third_party/brotli/*.a $WORK/lib
-cp third_party/brotli/*.pc $WORK/lib/pkgconfig
-popd
|
[-]
[+]
|
Deleted |
_service:tar_git:ImageMagick-7.1.1.23+obs1.1.tar.xz/upstream/Magick++/fuzz/build_imagemagick.sh
^
|
@@ -1,6 +0,0 @@
-#!/bin/bash -eu
-
-autoreconf -fiv
-./configure --prefix="$WORK" --disable-shared --disable-docs --with-jxl CFLAGS="$CFLAGS -I$WORK/include" LIBS="-L$WORK/lib -lhwy -lbrotlidec -lbrotlienc -lbrotlicommon -lde265" PKG_CONFIG_PATH="$WORK/lib/pkgconfig"
-make "-j$(nproc)"
-make install
|
[-]
[+]
|
Deleted |
_service:tar_git:ImageMagick-7.1.1.23+obs1.1.tar.xz/upstream/m4/ac_func_fseeko.m4
^
|
@@ -1,72 +0,0 @@
-# This file is part of Autoconf. -*- Autoconf -*-
-# Checking for functions.
-# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
-# Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
-#
-# As a special exception, the Free Software Foundation gives unlimited
-# permission to copy, distribute and modify the configure scripts that
-# are the output of Autoconf. You need not follow the terms of the GNU
-# General Public License when using or distributing such scripts, even
-# though portions of the text of Autoconf appear in them. The GNU
-# General Public License (GPL) does govern all other use of the material
-# that constitutes the Autoconf program.
-#
-# Certain portions of the Autoconf source text are designed to be copied
-# (in certain cases, depending on the input) into the output of
-# Autoconf. We call these the "data" portions. The rest of the Autoconf
-# source text consists of comments plus executable code that decides which
-# of the data portions to output in any given case. We call these
-# comments and executable code the "non-data" portions. Autoconf never
-# copies any of the non-data portions into its output.
-#
-# This special exception to the GPL applies to versions of Autoconf
-# released by the Free Software Foundation. When you make and
-# distribute a modified version of Autoconf, you may extend this special
-# exception to the GPL to apply to your modified version as well, *unless*
-# your modified version has the potential to copy into its output some
-# of the text that was the non-data portion of the version that you started
-# with. (In other words, unless your change moves or copies text from
-# the non-data portions to the data portions.) If your modification has
-# such potential, you must delete any notice of this special exception
-# to the GPL from your modified version.
-#
-# Written by David MacKenzie, with help from
-# Franc,ois Pinard, Karl Berry, Richard Pixley, Ian Lance Taylor,
-# Roland McGrath, Noah Friedman, david d zuhn, and many others.
-
-# AC_FUNC_FSEEKO
-# --------------
-AN_FUNCTION([ftello], [AC_FUNC_FSEEKO])
-AN_FUNCTION([fseeko], [AC_FUNC_FSEEKO])
-AC_DEFUN([AC_FUNC_FSEEKO],
-[_AC_SYS_LARGEFILE_MACRO_VALUE(_LARGEFILE_SOURCE, 1,
- [ac_cv_sys_largefile_source],
- [Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2).],
- [[#include <sys/types.h> /* for off_t */
- #include <stdio.h>]],
- [[int (*fp) (FILE *, off_t, int) = fseeko;
- return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);]])
-
-# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
-# in glibc 2.1.3, but that breaks too many other things.
-# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
-if test $ac_cv_sys_largefile_source != unknown; then
- AC_DEFINE(HAVE_FSEEKO, 1,
- [Define to 1 if fseeko (and presumably ftello) exists and is declared.])
-fi
-])# AC_FUNC_FSEEKO
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/.devcontainer/security/Dockerfile
^
|
@@ -13,6 +13,7 @@
RUN git clone --depth 1 https://github.com/uclouvain/openjpeg
RUN git clone --depth 1 https://github.com/webmproject/libwebp
RUN git clone --depth 1 https://github.com/madler/zlib
+RUN git clone --depth 1 https://github.com/ebiggers/libdeflate
RUN git clone --depth 1 https://github.com/libjpeg-turbo/libjpeg-turbo
RUN git clone --depth 1 https://github.com/xz-mirror/xz
RUN git clone --depth 1 https://github.com/libraw/libraw
@@ -23,7 +24,7 @@
RUN git clone --depth 1 --recursive https://github.com/libjxl/libjxl
RUN git -c http.sslVerify=false clone https://www.cl.cam.ac.uk/~mgk25/git/jbigkit
-ADD Magick++/fuzz/build_dependencies.sh build_dependencies.sh
+ADD oss-fuzz/build_dependencies.sh build_dependencies.sh
ENV SRC=/ImageMagick/dependencies
ENV WORK=/ImageMagick
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/.devcontainer/security/build_imagemagick.sh
^
|
@@ -1,6 +1,6 @@
#!/bin/bash -eu
-./Magick++/fuzz/build_imagemagick.sh
+./oss-fuzz/build_imagemagick.sh
cat <<EOT >> /ImageMagick/etc/ImageMagick-7/policy.xml
<policymap>
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/.github/workflows/app-image.yml
^
|
@@ -8,6 +8,8 @@
pull_request:
branches:
- main
+ paths:
+ - '.github/workflows/app-image.yml'
permissions:
contents: write
@@ -18,7 +20,7 @@
name: 'Create AppImage'
runs-on: ubuntu-latest
container:
- image: ubuntu:18.04
+ image: ubuntu:20.04
options: --device /dev/fuse --cap-add SYS_ADMIN --security-opt apparmor:unconfined
strategy:
@@ -27,27 +29,26 @@
include:
- compiler: gcc
cxx_compiler: g++
+ packages: gcc g++
- compiler: clang
cxx_compiler: clang++
+ packages: clang
steps:
- name: Install dependencies
run: |
set -e
- apt-get update -y
- apt-get install -y autoconf curl fuse git kmod libbz2-dev libdjvulibre-dev libfontconfig-dev libfreetype6-dev libfribidi-dev libharfbuzz-dev liblcms-dev libopenexr-dev libopenjp2-7-dev libturbojpeg0-dev liblqr-dev libraqm-dev libtiff-dev libwebp-dev libx11-dev libxml2-dev liblzma-dev software-properties-common wget
+ export DEBIAN_FRONTEND=noninteractive
+ apt update -y
+ apt install -y autoconf curl fuse git kmod libbz2-dev libdjvulibre-dev libfontconfig-dev libfreetype6-dev libfribidi-dev libharfbuzz-dev liblcms-dev libopenexr-dev libopenjp2-7-dev libturbojpeg0-dev liblqr-dev libraqm-dev libtiff-dev libwebp-dev libx11-dev libxml2-dev liblzma-dev make software-properties-common wget ${{ matrix.packages }}
add-apt-repository ppa:git-core/ppa -y
- apt-get install -y git
+ apt install -y git
add-apt-repository ppa:strukturag/libheif -y
add-apt-repository ppa:strukturag/libde265 -y
- apt-get install libheif-dev -y
+ apt install libheif-dev -y
- name: Checkout
- uses: actions/checkout@v3
-
- - name: Install ${{ matrix.compiler }}
- if: matrix.compiler == 'clang'
- run: apt-get install -y ${{ matrix.compiler }}
+ uses: actions/checkout@v4
- name: Download AppImage
run: |
@@ -90,7 +91,7 @@
find /appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq
- name: Upload ImageMagick AppImage
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: AppImage-${{ matrix.compiler }}
path: artifacts
@@ -104,7 +105,7 @@
steps:
- name: Download artifacts
- uses: actions/download-artifact@v3
+ uses: actions/download-artifact@v4
with:
path: artifacts
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/.github/workflows/codeql-analysis.yml
^
|
@@ -20,7 +20,7 @@
modules: [ 'with-modules', 'without-modules' ]
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
fetch-depth: 2
@@ -31,7 +31,7 @@
echo "" > config.status
- name: Initialize CodeQL
- uses: github/codeql-action/init@v2
+ uses: github/codeql-action/init@v3
with:
languages: cpp
@@ -40,4 +40,4 @@
make
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v2
+ uses: github/codeql-action/analyze@v3
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/.github/workflows/daily.yml
^
|
@@ -16,7 +16,7 @@
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
@@ -32,7 +32,7 @@
mv ChangeLog.md artifacts/ChangeLog.md
- name: Upload ChangeLog.md
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: ChangeLog
path: artifacts
@@ -76,7 +76,7 @@
apt-get install -y autoconf libfontconfig1-dev libfreetype6-dev libltdl-dev make pkg-config ${{ matrix.packages }}
- name: Clone msttcorefonts
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
repository: ImageMagick/msttcorefonts
ref: refs/heads/main
@@ -86,7 +86,7 @@
set -e
./install.sh
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Configure ImageMagick
env:
@@ -130,7 +130,7 @@
steps:
- name: Clone ImageMagick-Windows
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
repository: ImageMagick/ImageMagick-Windows
path: ImageMagick-Windows
@@ -143,7 +143,7 @@
CloneRepositories.cmd https://github.com/ImageMagick shallow
- name: Download ChangeLog.md
- uses: actions/download-artifact@v3
+ uses: actions/download-artifact@v4
with:
name: ChangeLog
path: ImageMagick-Windows\ImageMagick
@@ -181,7 +181,7 @@
steps:
- name: Clone ImageMagick-Windows
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
repository: ImageMagick/ImageMagick-Windows
path: ImageMagick-Windows
@@ -232,9 +232,9 @@
- name: Prepare git
run: git config --global core.autocrlf false
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
repository: ImageMagick/ImageMagick-Windows
path: ImageMagick-Windows
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/.github/workflows/main.yml
^
|
@@ -31,7 +31,7 @@
packages: clang
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Install dependencies
run: |
@@ -62,7 +62,7 @@
runs-on: macos-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Install dependencies
run: |
@@ -92,11 +92,11 @@
platform: [ x86, x64, arm64 ]
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
path: ImageMagick
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
repository: ImageMagick/ImageMagick-Windows
path: ImageMagick-Windows
@@ -136,9 +136,9 @@
- name: Prepare git
run: git config --global core.autocrlf false
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
repository: ImageMagick/ImageMagick-Windows
path: ImageMagick-Windows
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/.github/workflows/release.yml
^
|
@@ -21,7 +21,7 @@
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
@@ -37,7 +37,7 @@
mv ChangeLog.md artifacts/ChangeLog.md
- name: Upload ChangeLog.md
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: ChangeLog
path: artifacts
@@ -73,7 +73,7 @@
hdri_flag: '-HDRI'
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
repository: ImageMagick/ImageMagick-Windows
path: ImageMagick-Windows
@@ -86,7 +86,7 @@
CloneRepositories.cmd https://github.com/ImageMagick shallow
- name: Download ChangeLog.md
- uses: actions/download-artifact@v3
+ uses: actions/download-artifact@v4
with:
name: ChangeLog
path: ImageMagick-Windows\ImageMagick
@@ -146,7 +146,7 @@
- name: Sign binaries
if: github.event_name != 'pull_request'
- uses: azure/azure-code-signing-action@v0.2.22
+ uses: azure/azure-code-signing-action@v0.3.0
with:
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
@@ -169,7 +169,7 @@
- name: Sign installer
if: github.event_name != 'pull_request'
- uses: azure/azure-code-signing-action@v0.2.22
+ uses: azure/azure-code-signing-action@v0.3.0
with:
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
@@ -184,9 +184,19 @@
timestamp-digest: SHA256
timeout: 600
- - uses: actions/upload-artifact@v3
+ - name: Get version
+ id: version
+ shell: pwsh
+ run: |
+ $version = (cat "ImageMagick-Windows\VisualMagick\installer\inc\version.isx" | Select-String "MagickPackageFullVersionText") | Out-String
+ $version = ($version | Select-String '".*"' -AllMatches | Select -Expand Matches | Select -Expand Value | Out-String)
+ $version = $version -Replace "`n|`r|""",""
+ $version = $version -Replace " ","-"
+ echo "version=$version" >> $env:GITHUB_OUTPUT
+
+ - uses: actions/upload-artifact@v4
with:
- name: installers
+ name: 'ImageMagick-${{steps.version.outputs.version}}-installer-${{matrix.quantum}}${{matrix.hdri_flag}}-${{matrix.type}}-${{matrix.platform}}'
path: 'ImageMagick-Windows\VisualMagick\installer\output'
release_windows_source:
@@ -196,7 +206,7 @@
runs-on: windows-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
repository: ImageMagick/ImageMagick-Windows
path: ImageMagick-Windows
@@ -209,7 +219,7 @@
CloneRepositories.cmd https://github.com/ImageMagick source
- name: Download ChangeLog.md
- uses: actions/download-artifact@v3
+ uses: actions/download-artifact@v4
with:
name: ChangeLog
path: ImageMagick-Windows\ImageMagick
@@ -220,7 +230,7 @@
cd ImageMagick-Windows
7z a ImageMagick-Windows.7z .\source\*
- - uses: actions/upload-artifact@v3
+ - uses: actions/upload-artifact@v4
with:
name: ImageMagick-Windows
path: 'ImageMagick-Windows\ImageMagick-Windows.7z'
@@ -251,7 +261,7 @@
hdri_flag: '-HDRI'
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
repository: ImageMagick/ImageMagick-Windows
path: ImageMagick-Windows
@@ -264,7 +274,7 @@
CloneRepositories.cmd https://github.com/ImageMagick shallow
- name: Download ChangeLog.md
- uses: actions/download-artifact@v3
+ uses: actions/download-artifact@v4
with:
name: ChangeLog
path: ImageMagick-Windows\ImageMagick
@@ -292,7 +302,7 @@
- name: Sign executables
if: github.event_name != 'pull_request'
- uses: azure/azure-code-signing-action@v0.2.22
+ uses: azure/azure-code-signing-action@v0.3.0
with:
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
@@ -339,7 +349,7 @@
$version = $version -Replace " ","-"
echo "version=$version" >> $env:GITHUB_OUTPUT
- - uses: actions/upload-artifact@v3
+ - uses: actions/upload-artifact@v4
with:
name: 'ImageMagick-${{steps.package.outputs.version}}-portable-${{matrix.quantum}}${{matrix.hdri_flag}}-${{matrix.platform}}'
path: portable
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/ImageMagick.spec.in
^
|
@@ -1,104 +1,193 @@
-%global VERSION @PACKAGE_BASE_VERSION@
-%global Patchlevel @MAGICK_PATCHLEVEL_VERSION@
+%bcond_without tests
-Name: @PACKAGE_NAME@
-Version: %{VERSION}
+%bcond_without libheif
+
+%if 0%{?flatpak}
+%bcond_with perl
+%else
+%bcond_without perl
+%endif
+
+# Disable automatic .la file removal
+%global __brp_remove_la_files %nil
+%global Version @PACKAGE_BASE_VERSION@
+%global Patchlevel @MAGICK_PATCHLEVEL_VERSION@
+%global libsover 10
+%global libcxxsover 5
+
+Name: ImageMagick
+Epoch: 1
+Version: %{Version}
Release: %{Patchlevel}
-Summary: Use ImageMagick to convert, edit, or compose bitmap images in a variety of formats. In addition resize, rotate, shear, distort and transform images.
-License: https://imagemagick.org/script/license.php
-Url: https://imagemagick.org/
-Source0: https://imagemagick.org/download/%{name}/%{name}-%{VERSION}-%{Patchlevel}.tar.xz
+Summary: Use ImageMagick to create, edit, convert, and display raster image files.
-BuildRequires: pkgconfig(bzip2), pkgconfig(freetype2), pkgconfig(libjpeg), pkgconfig(libpng)
-BuildRequires: pkgconfig(libtiff-4), giflib-devel, pkgconfig(zlib), perl-devel >= 5.8.1
+License: ImageMagick
+URL: https://imagemagick.org/
+Source0: https://imagemagick.org/archive/releases/%{name}-%{Version}-%{Patchlevel}.tar.xz
+
+BuildRequires: pkgconfig(bzip2)
+BuildRequires: pkgconfig(freetype2)
+BuildRequires: pkgconfig(libjpeg)
+BuildRequires: pkgconfig(libpng)
+BuildRequires: pkgconfig(libtiff-4)
+BuildRequires: giflib-devel
+BuildRequires: pkgconfig(zlib)
+%if %{with perl}
+BuildRequires: perl-devel >= 5.8.1
BuildRequires: perl-generators
-BuildRequires: libgs-devel, ghostscript-x11
+%endif
+%if 0%{?rhel} && 0%{?rhel} < 8
+BuildRequires: ghostscript-devel
+%else
+BuildRequires: libgs-devel
+%endif
BuildRequires: pkgconfig(ddjvuapi)
-BuildRequires: pkgconfig(libwmf), pkgconfig(jasper), libtool-ltdl-devel
-BuildRequires: pkgconfig(x11), pkgconfig(xext), pkgconfig(xt)
-BuildRequires: pkgconfig(lcms2), pkgconfig(libxml-2.0), pkgconfig(librsvg-2.0)
+BuildRequires: pkgconfig(libwmf)
+BuildRequires: pkgconfig(jasper)
+BuildRequires: libtool-ltdl-devel
+BuildRequires: pkgconfig(x11)
+BuildRequires: pkgconfig(xext)
+BuildRequires: pkgconfig(xt)
+BuildRequires: pkgconfig(lcms2)
+BuildRequires: pkgconfig(libxml-2.0)
+BuildRequires: pkgconfig(librsvg-2.0)
+%if 0%{?rhel} && 0%{?rhel} < 9
+BuildRequires: pkgconfig(IlmBase), pkgconfig(OpenEXR) < 2.5.6
+%else
BuildRequires: pkgconfig(OpenEXR)
-BuildRequires: pkgconfig(fftw3), pkgconfig(libwebp)
+%endif
+BuildRequires: pkgconfig(fftw3)
+BuildRequires: pkgconfig(libwebp)
BuildRequires: jbigkit-devel
+BuildRequires: pkgconfig(libjxl)
BuildRequires: pkgconfig(libopenjp2) >= 2.1.0
BuildRequires: pkgconfig(libcgraph) >= 2.9.0
BuildRequires: pkgconfig(raqm)
+%if 0%{?fedora} || 0%{?rhel} > 8
BuildRequires: pkgconfig(lqr-1)
+%endif
BuildRequires: pkgconfig(libraw) >= 0.14.8
BuildRequires: pkgconfig(libzstd)
+BuildRequires: pkgconfig(libzip) >= 1.0.0
+BuildRequires: pkgconfig(pango) >= 1.28.1
+BuildRequires: pkgconfig(pangocairo) >= 1.28.1
+BuildRequires: urw-base35-fonts-devel
BuildRequires: autoconf automake gcc gcc-c++
-
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+BuildRequires: make
+BuildRequires: gnupg2
+# for doc
+BuildRequires: doxygen
+
+Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
+# allow smooth upgrade for 3rd party repository
+# providing latest version/soname as ImageMagick7
+Obsoletes: %{name}7 < %{epoch}:%{version}-%{release}
+Provides: %{name}7 = %{epoch}:%{version}-%{release}
%description
-ImageMagick® is a software suite to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, JPEG-2000, GIF, TIFF, DPX, EXR, WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.
-
-The functionality of ImageMagick is typically utilized from the command-line or you can use the features from programs written in your favorite language. Choose from these interfaces: G2F (Ada), MagickCore (C), MagickWand (C), ChMagick (Ch), Magick++ (C++), JMagick (Java), L-Magick (Lisp), Lua (LuaJIT), NMagick (Neko/haXe), Magick.NET (.NET), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), IMagick (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images dynamically and automagically.
-
-ImageMagick utilizes multiple computational threads to increase performance and can read, process, or write mega-, giga-, or tera-pixel image sizes.
-
-ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you may use, copy, modify, and distribute in both open and proprietary applications. It is distributed under the Apache 2.0 license.
-
-The ImageMagick development process ensures a stable API and ABI. Before each ImageMagick release, we perform a comprehensive security assessment that includes memory error and thread data race detection to prevent security vulnerabilities.
+ImageMagick is a free and open-source software suite used for creating,
+editing, converting, and displaying raster image files. It can read and write
+over 200 different image file formats. ImageMagick is a powerful tool for
+working with images on the command line or through programming interfaces. It
+supports a wide range of image processing operations, including resizing,
+cropping, rotating, and various color manipulations.
+
+ImageMagick is widely used in web development, graphic design, and other
+areas where image processing is required. It provides a versatile and
+efficient way to handle a variety of image-related tasks. Additionally,
+ImageMagick has bindings for various programming languages, making it easy
+to integrate into software applications
+and workflows.
-The authoritative ImageMagick web site is https://imagemagick.org. The authoritative source code repository is http://git.imagemagick.org/repos/ImageMagick. We maintain a source code mirror at GitHub.
%package devel
-Summary: Library links and header files for ImageMagick application development
-Requires: %{name}%{?_isa} = %{version}-%{release}
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+Summary: Library links and header files for ImageMagick app development
+Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
+Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
+Obsoletes: %{name}7-devel < %{epoch}:%{version}-%{release}
+Provides: %{name}7-devel = %{epoch}:%{version}-%{release}
%description devel
-ImageMagick-devel contains the library links and header files you'll
-need to develop ImageMagick applications. ImageMagick is an image
-manipulation program.
-
-If you want to create applications that will use ImageMagick code or
-APIs, you need to install ImageMagick-devel as well as ImageMagick.
-You do not need to install it if you just want to use ImageMagick,
-however.
+ImageMagick-devel contains the library links and header files you'll need to
+develop ImageMagick applications. ImageMagick is an image manipulation program.
+
+If you want to create applications that will use ImageMagick code or APIs,
+you need to install ImageMagick-devel as well as ImageMagick. You do not
+need to install it if you just want to use ImageMagick, however.
+
%package libs
Summary: ImageMagick libraries to link with
+Obsoletes: %{name}7-libs < %{epoch}:%{version}-%{release}
+Provides: %{name}7-libs = %{epoch}:%{version}-%{release}
+# These may be used for some functions
+Recommends: urw-base35-fonts
+# default font is OpenSans-Regular
+Recommends: open-sans-fonts
%description libs
This packages contains a shared libraries to use within other applications.
+
%package djvu
Summary: DjVu plugin for ImageMagick
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
+Obsoletes: %{name}7-djvu < %{epoch}:%{version}-%{release}
+Provides: %{name}7-djvu = %{epoch}:%{version}-%{release}
%description djvu
This packages contains a plugin for ImageMagick which makes it possible to
save and load DjvU files from ImageMagick and libMagickCore using applications.
+%if %{with libheif}
+%package heic
+Summary: HEIC plugin for ImageMagick
+BuildRequires: pkgconfig(libheif) >= 1.4.0
+%if 0%{?rhel} == 7
+# ensure we use our on EL-7
+Requires: libheif%{?_isa} >= 1.4.0
+%endif
+Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
+
+%description heic
+This packages contains a plugin for ImageMagick which makes it possible to
+save and load HEIC files from ImageMagick and libMagickCore using applications.
+%endif
+
+
%package doc
-Summary: ImageMagick HTML documentation
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/Magick++/bin/Magick++-config.in
^
|
@@ -7,6 +7,9 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
+libdir=@libdir@
+pkgconfigdir=@pkgconfigdir@
+export PKG_CONFIG_LIBDIR="${pkgconfigdir}"
usage='Usage: Magick++-config [--cppflags] [--cxxflags] [--exec-prefix] [--ldflags] [--libs] [--prefix] [--version]
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/Magick++/lib/Color.cpp
^
|
@@ -239,7 +239,12 @@
setPixelType(target_color);
}
else
- _isValid = false;
+ {
+ _isValid = false;
+ _pixelOwn = false;
+ delete _pixel;
+ _pixel = nullptr;
+ }
ThrowPPException(false);
return(*this);
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/Magick++/lib/Image.cpp
^
|
@@ -2192,7 +2192,7 @@
*newImage;
GetPPException;
- newImage=SeparateImage(image(),channel_,exceptionInfo);
+ newImage=SeparateImage(constImage(),channel_,exceptionInfo);
replaceImage(newImage);
ThrowImageException;
}
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/MagickCore-config.in
^
|
@@ -6,13 +6,16 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
+libdir=@libdir@
+pkgconfigdir=@pkgconfigdir@
+export PKG_CONFIG_LIBDIR="${pkgconfigdir}"
usage="\
Usage: MagickCore-config [--cflags] [--cppflags] [--exec-prefix] [--ldflags] [--libs] [--prefix] [--version]"
if test $# -eq 0; then
echo "${usage}" 1>&2
- echo "Example: gcc \`MagickCore-config --cflags --cppflags\` -o core core.c \`Magick-config --ldflags --libs\`" 1>&2
+ echo "Example: gcc \`MagickCore-config --cflags --cppflags\` -o core core.c \`MagickCore-config --ldflags --libs\`" 1>&2
exit 1
fi
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/annotate.c
^
|
@@ -1940,8 +1940,12 @@
(draw_info->stroke.alpha == (MagickRealType) TransparentAlpha) &&
(draw_info->stroke_pattern == (Image *) NULL)) ? MagickTrue :
MagickFalse;
- image_view=AcquireAuthenticCacheView(image,exception);
r=bitmap->bitmap.buffer;
+ image_view=AcquireAuthenticCacheView(image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+ #pragma omp parallel for schedule(static) shared(status) \
+ magick_number_threads(image,image,bitmap->bitmap.rows,4)
+#endif
for (y=0; y < (ssize_t) bitmap->bitmap.rows; y++)
{
double
@@ -2211,7 +2215,8 @@
unique_file;
MagickBooleanType
- identity;
+ identity,
+ status;
PointInfo
extent,
@@ -2385,7 +2390,12 @@
(void) SetImageAlphaChannel(annotate_image,OpaqueAlphaChannel,
exception);
fill_color=draw_info->fill;
+ status=MagickTrue;
annotate_view=AcquireAuthenticCacheView(annotate_image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+ #pragma omp parallel for schedule(static) shared(status) \
+ magick_number_threads(annotate_image,annotate_image,annotate_image->rows,4)
+#endif
for (y=0; y < (ssize_t) annotate_image->rows; y++)
{
ssize_t
@@ -2394,10 +2404,15 @@
Quantum
*magick_restrict q;
+ if (status == MagickFalse)
+ continue;
q=GetCacheViewAuthenticPixels(annotate_view,0,y,annotate_image->columns,
1,exception);
if (q == (Quantum *) NULL)
- break;
+ {
+ status=MagickFalse;
+ continue;
+ }
for (x=0; x < (ssize_t) annotate_image->columns; x++)
{
GetFillColor(draw_info,x,y,&fill_color,exception);
@@ -2410,7 +2425,7 @@
}
sync=SyncCacheViewAuthenticPixels(annotate_view,exception);
if (sync == MagickFalse)
- break;
+ status=MagickFalse;
}
annotate_view=DestroyCacheView(annotate_view);
(void) CompositeImage(image,annotate_image,OverCompositeOp,MagickTrue,
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/artifact.c
^
|
@@ -17,7 +17,7 @@
% March 2000 %
% %
% %
-% Copyright @ 2000 ImageMagick Studio LLC, a non-profit organization %
+% Copyright @ 1999 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/attribute.c
^
|
@@ -482,7 +482,7 @@
GetPixelInfo(image,&zero);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -1568,13 +1568,7 @@
*image_view;
ImageType
- type;
-
- const Quantum
- *p;
-
- ssize_t
- x;
+ type = BilevelType;
ssize_t
y;
@@ -1587,13 +1581,27 @@
return(image->type);
if (IssRGBCompatibleColorspace(image->colorspace) == MagickFalse)
return(UndefinedType);
- type=BilevelType;
image_view=AcquireVirtualCacheView(image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+ #pragma omp parallel for schedule(static) shared(type) \
+ magick_number_threads(image,image,image->rows,2)
+#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
+ const Quantum
+ *p;
+
+ ssize_t
+ x;
+
+ if (type == UndefinedType)
+ continue;
p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
if (p == (const Quantum *) NULL)
- break;
+ {
+ type=UndefinedType;
+ continue;
+ }
for (x=0; x < (ssize_t) image->columns; x++)
{
if (IsPixelGray(image,p) == MagickFalse)
@@ -1605,8 +1613,6 @@
type=GrayscaleType;
p+=GetPixelChannels(image);
}
- if (type == UndefinedType)
- break;
}
image_view=DestroyCacheView(image_view);
if ((type == GrayscaleType) && (image->alpha_trait != UndefinedPixelTrait))
@@ -1647,14 +1653,8 @@
CacheView
*image_view;
- MagickBooleanType
- bilevel;
-
- ssize_t
- x;
-
- const Quantum
- *p;
+ ImageType
+ type = BilevelType;
ssize_t
y;
@@ -1667,27 +1667,39 @@
return(MagickTrue);
if (IssRGBCompatibleColorspace(image->colorspace) == MagickFalse)
return(MagickFalse);
- bilevel=MagickTrue;
image_view=AcquireVirtualCacheView(image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+ #pragma omp parallel for schedule(static) shared(type) \
+ magick_number_threads(image,image,image->rows,2)
+#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
+ const Quantum
+ *p;
+
+ ssize_t
+ x;
+
+ if (type == UndefinedType)
+ continue;
p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
if (p == (const Quantum *) NULL)
- break;
+ {
+ type=UndefinedType;
+ continue;
+ }
for (x=0; x < (ssize_t) image->columns; x++)
{
if (IsPixelMonochrome(image,p) == MagickFalse)
{
- bilevel=MagickFalse;
+ type=UndefinedType;
break;
}
p+=GetPixelChannels(image);
}
- if (bilevel == MagickFalse)
- break;
}
image_view=DestroyCacheView(image_view);
- return(bilevel);
+ return(type == BilevelType ? MagickTrue : MagickFalse);
}

/*
@@ -1849,11 +1861,8 @@
CacheView
*image_view;
- const Quantum
- *p;
-
- ssize_t
- x;
+ MagickBooleanType
+ opaque = MagickTrue;
ssize_t
y;
@@ -1868,22 +1877,38 @@
if ((image->alpha_trait & BlendPixelTrait) == 0)
return(MagickTrue);
image_view=AcquireVirtualCacheView(image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+ #pragma omp parallel for schedule(static) shared(opaque) \
+ magick_number_threads(image,image,image->rows,2)
+#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
+ const Quantum
+ *p;
+
+ ssize_t
+ x;
+
+ if (opaque == MagickFalse)
+ continue;
p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
if (p == (const Quantum *) NULL)
- break;
+ {
+ opaque=MagickFalse;
+ continue;
+ }
for (x=0; x < (ssize_t) image->columns; x++)
{
if (GetPixelAlpha(image,p) != OpaqueAlpha)
- break;
+ {
+ opaque=MagickFalse;
+ break;
+ }
p+=GetPixelChannels(image);
}
- if (x < (ssize_t) image->columns)
- break;
}
image_view=DestroyCacheView(image_view);
- return(y < (ssize_t) image->rows ? MagickFalse : MagickTrue);
+ return(opaque);
}

/*
@@ -1989,7 +2014,7 @@
range);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -2047,7 +2072,7 @@
*/
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/blob.c
^
|
@@ -618,8 +618,7 @@
blob_info=image->blob;
if ((blob_info == (BlobInfo *) NULL) || (blob_info->type == UndefinedStream))
return(MagickTrue);
- if (SyncBlob(image) != 0)
- ThrowBlobException(blob_info);
+ (void) SyncBlob(image);
status=blob_info->status;
switch (blob_info->type)
{
@@ -5518,6 +5517,8 @@
assert(image->blob != (BlobInfo *) NULL);
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+ if (EOFBlob(image) != 0)
+ return(0);
blob_info=image->blob;
status=0;
switch (blob_info->type)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/cache-private.h
^
|
@@ -236,12 +236,12 @@
} CacheInfo;
static inline MagickBooleanType IsValidPixelOffset(const ssize_t x,
- const size_t a)
+ const size_t extent)
{
- if (a == 0)
+ if (extent == 0)
return(MagickTrue);
- if ((x >= (MAGICK_SSIZE_MAX/MaxPixelChannels/(ssize_t) a)) ||
- (x <= (MAGICK_SSIZE_MIN/MaxPixelChannels/(ssize_t) a)))
+ if ((x >= (MAGICK_SSIZE_MAX/(ssize_t) extent)) ||
+ (x <= (MAGICK_SSIZE_MIN/(ssize_t) extent)))
return(MagickFalse);
return(MagickTrue);
}
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/cache-view.c
^
|
@@ -23,7 +23,7 @@
% February 2000 %
% %
% %
-% Copyright @ 2000 ImageMagick Studio LLC, a non-profit organization %
+% Copyright @ 1999 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/cache-view.h
^
|
@@ -1,5 +1,5 @@
/*
- Copyright @ 2000 ImageMagick Studio LLC, a non-profit organization
+ Copyright @ 1999 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License. You may
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/cache.c
^
|
@@ -61,6 +61,7 @@
#include "MagickCore/option.h"
#include "MagickCore/pixel.h"
#include "MagickCore/pixel-accessor.h"
+#include "MagickCore/pixel-private.h"
#include "MagickCore/policy.h"
#include "MagickCore/quantum.h"
#include "MagickCore/random_.h"
@@ -731,7 +732,7 @@
status=MagickTrue;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- cache_number_threads(cache_info,clone_info,(int) cache_info->rows,1)
+ cache_number_threads(cache_info,clone_info,(int) cache_info->rows,4)
#endif
for (y=0; y < (ssize_t) cache_info->rows; y++)
{
@@ -812,7 +813,7 @@
clone_info->metacontent_extent);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- cache_number_threads(cache_info,clone_info,(int) cache_info->rows,1)
+ cache_number_threads(cache_info,clone_info,(int) cache_info->rows,4)
#endif
for (y=0; y < (ssize_t) cache_info->rows; y++)
{
@@ -1696,6 +1697,9 @@
if (IsImageTTLExpired(image) != MagickFalse)
{
+#if defined(ESTALE)
+ errno=ESTALE;
+#endif
(void) ThrowMagickException(exception,GetMagickModule(),
ResourceLimitError,"TimeLimitExceeded","`%s'",image->filename);
return((Cache) NULL);
@@ -3690,12 +3694,6 @@
((MagickSizeType) image->rows > cache_info->height_limit))
ThrowBinaryException(ImageError,"WidthOrHeightExceedsLimit",
image->filename);
- if (GetPixelChannels(image) >= MaxPixelChannels)
- ThrowBinaryException(CorruptImageError,"MaximumChannelsExceeded",
- image->filename);
- if (GetPixelMetaChannels(image) >= (MaxPixelChannels-MetaPixelChannels))
- ThrowBinaryException(CorruptImageError,"MaximumChannelsExceeded",
- image->filename);
if (GetMagickResourceLimit(ListLengthResource) != MagickResourceInfinity)
{
length=GetImageListLength(image);
@@ -3713,7 +3711,9 @@
cache_info->channels=image->channels;
cache_info->rows=image->rows;
cache_info->columns=image->columns;
- InitializePixelChannelMap(image);
+ status=ResetPixelChannelMap(image,exception);
+ if (status == MagickFalse)
+ return(MagickFalse);
cache_info->number_channels=GetPixelChannels(image);
(void) memcpy(cache_info->channel_map,image->channel_map,MaxPixelChannels*
sizeof(*image->channel_map));
@@ -5223,7 +5223,7 @@
image_view=AcquireVirtualCacheView(image,exception); /* must be virtual */
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/channel.c
^
|
@@ -141,7 +141,7 @@
destination_view=AcquireAuthenticCacheView(destination_image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(source_image,source_image,height,1)
+ magick_number_threads(source_image,source_image,height,4)
#endif
for (y=0; y < (ssize_t) height; y++)
{
@@ -570,6 +570,10 @@
status=MagickTrue;
progress=0;
combine_view=AcquireAuthenticCacheView(combine_image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+ #pragma omp parallel for schedule(static) shared(progress,status) \
+ magick_number_threads(combine_image,combine_image,combine_image->rows,4)
+#endif
for (y=0; y < (ssize_t) combine_image->rows; y++)
{
CacheView
@@ -578,13 +582,11 @@
const Image
*next;
- Quantum
- *pixels;
-
const Quantum
*magick_restrict p;
Quantum
+ *pixels,
*magick_restrict q;
ssize_t
@@ -763,7 +765,7 @@
separate_view=AcquireAuthenticCacheView(separate_image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(progress,status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -1014,7 +1016,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -1074,7 +1076,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -1134,7 +1136,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -1204,6 +1206,52 @@
image->alpha_trait=UndefinedPixelTrait;
break;
}
+ case OffIfOpaqueAlphaChannel:
+ {
+ MagickBooleanType
+ opaque = MagickTrue;
+
+ /*
+ Remove opaque alpha channel.
+ */
+ if ((image->alpha_trait & BlendPixelTrait) == 0)
+ break;
+ image_view=AcquireVirtualCacheView(image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+ #pragma omp parallel for schedule(static) shared(opaque,status) \
+ magick_number_threads(image,image,image->rows,2)
+#endif
+ for (y=0; y < (ssize_t) image->rows; y++)
+ {
+ const Quantum
+ *magick_restrict p;
+
+ ssize_t
+ x;
+
+ if ((status == MagickFalse) || (opaque == MagickFalse))
+ continue;
+ p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
+ if (p == (const Quantum *) NULL)
+ {
+ status=MagickFalse;
+ continue;
+ }
+ for (x=0; x < (ssize_t) image->columns; x++)
+ {
+ if (GetPixelAlpha(image,p) != OpaqueAlpha)
+ {
+ opaque=MagickFalse;
+ break;
+ }
+ p+=GetPixelChannels(image);
+ }
+ }
+ image_view=DestroyCacheView(image_view);
+ if (opaque != MagickFalse)
+ image->alpha_trait=UndefinedPixelTrait;
+ break;
+ }
case OnAlphaChannel:
{
if ((image->alpha_trait & BlendPixelTrait) == 0)
@@ -1229,7 +1277,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -1284,7 +1332,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/channel.h
^
|
@@ -24,6 +24,27 @@
extern "C" {
#endif
+typedef enum
+{
+ UndefinedAlphaChannel,
+ ActivateAlphaChannel,
+ AssociateAlphaChannel,
+ BackgroundAlphaChannel,
+ CopyAlphaChannel,
+ DeactivateAlphaChannel,
+ DiscreteAlphaChannel,
+ DisassociateAlphaChannel,
+ ExtractAlphaChannel,
+ OffAlphaChannel,
+ OnAlphaChannel,
+ OpaqueAlphaChannel,
+ RemoveAlphaChannel,
+ SetAlphaChannel,
+ ShapeAlphaChannel,
+ TransparentAlphaChannel,
+ OffIfOpaqueAlphaChannel
+} AlphaChannelOption;
+
extern MagickExport Image
*ChannelFxImage(const Image *,const char *,ExceptionInfo *),
*CombineImages(const Image *,const ColorspaceType,ExceptionInfo *),
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/colormap.c
^
|
@@ -207,7 +207,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -306,7 +306,7 @@
status;
ssize_t
- i;
+ j;
ssize_t
y;
@@ -331,8 +331,8 @@
/*
Assign index values to colormap entries.
*/
- for (i=0; i < (ssize_t) image->colors; i++)
- image->colormap[i].alpha=(double) i;
+ for (j=0; j < (ssize_t) image->colors; j++)
+ image->colormap[j].alpha=(double) j;
/*
Sort image colormap by decreasing color popularity.
*/
@@ -341,29 +341,38 @@
/*
Update image colormap indexes to sorted colormap order.
*/
- for (i=0; i < (ssize_t) image->colors; i++)
- pixels[(ssize_t) image->colormap[i].alpha]=(unsigned short) i;
+ for (j=0; j < (ssize_t) image->colors; j++)
+ pixels[(ssize_t) image->colormap[j].alpha]=(unsigned short) j;
status=MagickTrue;
image_view=AcquireAuthenticCacheView(image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+ #pragma omp parallel for schedule(static) \
+ magick_number_threads(image,image,image->rows,2)
+#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
Quantum
- index;
+ *magick_restrict q;
ssize_t
x;
- Quantum
- *magick_restrict q;
-
+ if (status == MagickFalse)
+ continue;
q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
if (q == (Quantum *) NULL)
{
status=MagickFalse;
- break;
+ continue;
}
for (x=0; x < (ssize_t) image->columns; x++)
{
+ Quantum
+ index;
+
+ ssize_t
+ i;
+
i=ConstrainColormapIndex(image,GetPixelIndex(image,q),exception);
index=(Quantum) pixels[i];
SetPixelIndex(image,index,q);
@@ -372,8 +381,6 @@
}
if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
status=MagickFalse;
- if (status == MagickFalse)
- break;
}
image_view=DestroyCacheView(image_view);
pixels=(unsigned short *) RelinquishMagickMemory(pixels);
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/colorspace.c
^
|
@@ -596,7 +596,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -655,7 +655,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -713,7 +713,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -806,7 +806,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -1054,7 +1054,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -1121,7 +1121,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -1366,7 +1366,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -2190,7 +2190,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -2249,7 +2249,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -2310,7 +2310,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -2404,7 +2404,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -2655,7 +2655,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -2721,7 +2721,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -2953,7 +2953,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/composite.c
^
|
@@ -634,7 +634,7 @@
mask_view=AcquireVirtualCacheView(mask_image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -747,7 +747,7 @@
mean_view=AcquireAuthenticCacheView(mean_image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(mask_image,mean_image,mean_image->rows,1)
+ magick_number_threads(mask_image,mean_image,mean_image->rows,4)
#endif
for (y=0; y < (ssize_t) mean_image->rows; y++)
{
@@ -1623,7 +1623,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(source_image,image,source_image->rows,1)
+ magick_number_threads(source_image,image,source_image->rows,4)
#endif
for (y=0; y < (ssize_t) source_image->rows; y++)
{
@@ -1707,7 +1707,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(source_image,image,source_image->rows,1)
+ magick_number_threads(source_image,image,source_image->rows,4)
#endif
for (y=0; y < (ssize_t) source_image->rows; y++)
{
@@ -3756,7 +3756,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(texture_image,image,image->rows,1)
+ magick_number_threads(texture_image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/deprecate.c
^
|
@@ -87,6 +87,7 @@
#include "MagickCore/paint.h"
#include "MagickCore/pixel.h"
#include "MagickCore/pixel-accessor.h"
+#include "MagickCore/pixel-private.h"
#include "MagickCore/quantize.h"
#include "MagickCore/random_.h"
#include "MagickCore/resource_.h"
@@ -401,5 +402,35 @@
return((void *) bitmapH);
}
#endif
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
++ I n i t i a l i z e P i x e l C h a n n e l M a p %
+% %
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% InitializePixelChannelMap() defines the standard pixel component map.
+%
+% The format of the InitializePixelChannelMap() method is:
+%
+% void InitializePixelChannelMap(Image *image)
+%
+% A description of each parameter follows:
+%
+% o image: the image.
+%
+*/
+MagickExport void InitializePixelChannelMap(Image *image)
+{
+ ExceptionInfo
+ *exception = AcquireExceptionInfo();
+ (void) ResetPixelChannelMap(image,exception);
+ exception=DestroyExceptionInfo(exception);
+}
#endif
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/deprecate.h
^
|
@@ -38,6 +38,9 @@
*ImageToHBITMAP(Image *,ExceptionInfo *);
#endif
+extern MagickExport void
+ InitializePixelChannelMap(Image *) magick_attribute((deprecated));
+
#endif
#if defined(__cplusplus) || defined(c_plusplus)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/distort.c
^
|
@@ -2378,7 +2378,7 @@
" jj=jj%s(%lf*rr*rr*rr %+lf*rr*rr %+lf*rr %+lf);\n",
method == BarrelDistortion ? "*" : "/",coeff[4],coeff[5],coeff[6],
coeff[7]);
- (void) FormatLocaleFile(stderr," v.p{fx*ii+xc,fy*jj+yc}' \\\n");
+ (void) FormatLocaleFile(stderr," p{ii+xc,jj+yc}' \\\n");
}
default:
break;
@@ -2863,16 +2863,21 @@
}
else {
/* resample the source image to find its correct color */
- (void) ResamplePixelColor(resample_filter[id],s.x,s.y,&pixel,
+ status=ResamplePixelColor(resample_filter[id],s.x,s.y,&pixel,
exception);
- /* if validity between 0.0 and 1.0 mix result with invalid pixel */
- if ( validity < 1.0 ) {
- /* Do a blend of sample color and invalid pixel */
- /* should this be a 'Blend', or an 'Over' compose */
- CompositePixelInfoBlend(&pixel,validity,&invalid,(1.0-validity),
- &pixel);
- }
- SetPixelViaPixelInfo(distort_image,&pixel,q);
+ if (status == MagickFalse)
+ SetPixelViaPixelInfo(distort_image,&invalid,q);
+ else
+ {
+ /* if validity between 0.0 & 1.0 mix result with invalid pixel */
+ if ( validity < 1.0 ) {
+ /* Do a blend of sample color and invalid pixel */
+ /* should this be a 'Blend', or an 'Over' compose */
+ CompositePixelInfoBlend(&pixel,validity,&invalid,(1.0-validity),
+ &pixel);
+ }
+ SetPixelViaPixelInfo(distort_image,&pixel,q);
+ }
}
q+=GetPixelChannels(distort_image);
}
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/draw.c
^
|
@@ -1247,7 +1247,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(source,image,(size_t) (stop-start),1)
+ magick_number_threads(source,image,(size_t) (stop-start),2)
#endif
for (y=start; y <= stop; y++)
{
@@ -2492,6 +2492,7 @@
*token;
const char
+ *p,
*q;
double
@@ -2523,13 +2524,6 @@
PrimitiveType
primitive_type;
- const char
- *p;
-
- ssize_t
- i,
- x;
-
SegmentInfo
bounds;
@@ -2543,10 +2537,12 @@
ssize_t
defsDepth,
+ i,
j,
k,
n,
- symbolDepth;
+ symbolDepth,
+ x;
StopInfo
*stops;
@@ -2743,7 +2739,13 @@
status=MagickFalse;
break;
}
- if (LocaleCompare(token,graphic_context[n]->id) == 0)
+ /*
+ Identify recursion.
+ */
+ for (i=0; i < n; i++)
+ if (LocaleCompare(token,graphic_context[i]->id) == 0)
+ break;
+ if (i < n)
break;
mvg_class=(const char *) GetValueFromSplayTree(macros,token);
if ((graphic_context[n]->render != MagickFalse) &&
@@ -3513,15 +3515,15 @@
(void) GetNextToken(q,&q,extent,token);
if (*token == ',')
(void) GetNextToken(q,&q,extent,token);
- region.width=(size_t) CastDoubleToLong(floor(GetDrawValue(
+ region.width=CastDoubleToUnsigned(floor(GetDrawValue(
token,&next_token)+0.5));
if (token == next_token)
ThrowPointExpectedException(token,exception);
(void) GetNextToken(q,&q,extent,token);
if (*token == ',')
(void) GetNextToken(q,&q,extent,token);
- region.height=CastDoubleToUnsigned(GetDrawValue(token,&next_token)+
- 0.5);
+ region.height=CastDoubleToUnsigned(GetDrawValue(token,
+ &next_token)+0.5);
if (token == next_token)
ThrowPointExpectedException(token,exception);
for (p=q; *q != '\0'; )
@@ -3943,21 +3945,21 @@
(void) GetNextToken(q,&q,extent,token);
if (*token == ',')
(void) GetNextToken(q,&q,extent,token);
- graphic_context[n]->viewbox.y=CastDoubleToLong(ceil(
- GetDrawValue(token,&next_token)-0.5));
+ graphic_context[n]->viewbox.y=CastDoubleToLong(
+ ceil(GetDrawValue(token,&next_token)-0.5));
if (token == next_token)
ThrowPointExpectedException(token,exception);
(void) GetNextToken(q,&q,extent,token);
if (*token == ',')
(void) GetNextToken(q,&q,extent,token);
- graphic_context[n]->viewbox.width=(size_t) CastDoubleToLong(
+ graphic_context[n]->viewbox.width=CastDoubleToUnsigned(
floor(GetDrawValue(token,&next_token)+0.5));
if (token == next_token)
ThrowPointExpectedException(token,exception);
(void) GetNextToken(q,&q,extent,token);
if (*token == ',')
(void) GetNextToken(q,&q,extent,token);
- graphic_context[n]->viewbox.height=(size_t) CastDoubleToLong(
+ graphic_context[n]->viewbox.height=(size_t) CastDoubleToUnsigned(
floor(GetDrawValue(token,&next_token)+0.5));
if (token == next_token)
ThrowPointExpectedException(token,exception);
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/effect.c
^
|
@@ -625,6 +625,12 @@
((width-(size_t) j)/2L)+GetPixelChannels(image)*((width-(size_t) j)/2));
for (i=0; i < (ssize_t) GetPixelChannels(sharp_image); i++)
{
+ const double
+ *magick_restrict k;
+
+ const Quantum
+ *magick_restrict pixels;
+
double
alpha,
gamma,
@@ -637,16 +643,8 @@
sharp_traits,
traits;
- const double
- *magick_restrict k;
-
- const Quantum
- *magick_restrict pixels;
-
- ssize_t
- u;
-
ssize_t
+ u,
v;
channel=GetPixelChannelChannel(image,i);
@@ -1236,7 +1234,7 @@
r=p+(y_offset*((ssize_t) columns+2)+x_offset);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) \
- magick_number_threads(image,image,rows,1)
+ magick_number_threads(image,image,rows,2)
#endif
for (y=0; y < (ssize_t) rows; y++)
{
@@ -1273,7 +1271,7 @@
s=q-(y_offset*((ssize_t) columns+2)+x_offset);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) \
- magick_number_threads(image,image,rows,1)
+ magick_number_threads(image,image,rows,2)
#endif
for (y=0; y < (ssize_t) rows; y++)
{
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/fx.c
^
|
@@ -634,7 +634,7 @@
PixelChannel ChannelQual;
ImgAttrE ImgAttrQual;
char * pExpStart;
- int lenExp;
+ size_t lenExp;
} ElementT;
typedef enum {
@@ -1717,7 +1717,7 @@
char * pExpStart;
- int lenExp = 0;
+ size_t lenExp = 0;
int FndArgs = 0;
int ndx0 = NULL_ADDRESS, ndx1 = NULL_ADDRESS, ndx2 = NULL_ADDRESS, ndx3 = NULL_ADDRESS;
@@ -1780,6 +1780,13 @@
if (TranslateStatementList (pfx, strLimit, &chLimit)) {
FndOne = 1;
} else {
+ if (!*pfx->pex) {
+ (void) ThrowMagickException (
+ pfx->exception, GetMagickModule(), OptionError,
+ "For function", "'%s' expected ')' at '%s'",
+ funStr, SetShortExp(pfx));
+ return MagickFalse;
+ }
/* Maybe don't break because other expressions may be not empty. */
if (!chLimit) break;
if (fe == fP || fe == fS|| fe == fIf) {
@@ -1858,7 +1865,7 @@
break;
}
if (chLimit == expChLimit) {
- lenExp = pfx->pex - pExpStart - 1;
+ lenExp = (size_t) (pfx->pex - pExpStart - 1);
break;
}
} /* end while args of a function */
@@ -2175,7 +2182,7 @@
double Pow = 0.0;
const char Prefixes[] = "yzafpnum.kMGTPEZY";
const char * pSi = strchr (Prefixes, *tailptr);
- if (pSi && *pSi != '.') Pow = (pSi - Prefixes) * 3 - 24;
+ if (pSi && *pSi != '.') Pow = (double) ((pSi - Prefixes) * 3 - 24);
else if (*tailptr == 'c') Pow = -2;
else if (*tailptr == 'h') Pow = 2;
else if (*tailptr == 'k') Pow = 3;
@@ -2818,9 +2825,6 @@
cs[ch].maxima *= QuantumScale;
cs[ch].minima *= QuantumScale;
cs[ch].standard_deviation *= QuantumScale;
- cs[ch].kurtosis *= QuantumScale;
- cs[ch].skewness *= QuantumScale;
- cs[ch].entropy *= QuantumScale;
}
return cs;
@@ -3174,12 +3178,15 @@
}
for (i=0; i < pfx->usedElements; i++) {
+ ElementT
+ *pel;
+
if (i < 0) {
(void) ThrowMagickException (
pfx->exception, GetMagickModule(), OptionError,
"Bad run-time address", "%i", i);
}
- ElementT *pel = &pfx->Elements[i];
+ pel=&pfx->Elements[i];
switch (pel->nArgs) {
case 0:
break;
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/gem-private.h
^
|
@@ -103,9 +103,9 @@
/*
Convert Adobe '98 to XYZ colorspace.
*/
- r=QuantumScale*DecodePixelGamma(red);
- g=QuantumScale*DecodePixelGamma(green);
- b=QuantumScale*DecodePixelGamma(blue);
+ r=QuantumScale*DecodePixelGamma((double) QuantumRange*red);
+ g=QuantumScale*DecodePixelGamma((double) QuantumRange*green);
+ b=QuantumScale*DecodePixelGamma((double) QuantumRange*blue);
*X=0.57666904291013050*r+0.18555823790654630*g+0.18822864623499470*b;
*Y=0.29734497525053605*r+0.62736356625546610*g+0.07529145849399788*b;
*Z=0.02703136138641234*r+0.07068885253582723*g+0.99133753683763880*b;
@@ -122,9 +122,9 @@
/*
Convert Display P3 to XYZ colorspace.
*/
- r=QuantumScale*DecodePixelGamma(red);
- g=QuantumScale*DecodePixelGamma(green);
- b=QuantumScale*DecodePixelGamma(blue);
+ r=QuantumScale*DecodePixelGamma((double) QuantumRange*red);
+ g=QuantumScale*DecodePixelGamma((double) QuantumRange*green);
+ b=QuantumScale*DecodePixelGamma((double) QuantumRange*blue);
*X=0.4865709486482162*r+0.26566769316909306*g+0.1982172852343625*b;
*Y=0.2289745640697488*r+0.69173852183650640*g+0.0792869140937450*b;
*Z=0.0000000000000000*r+0.04511338185890264*g+1.0439443689009760*b;
@@ -196,9 +196,10 @@
/*
Convert ProPhoto to XYZ colorspace.
*/
- r=QuantumScale*DecodePixelGamma(red);
- g=QuantumScale*DecodePixelGamma(green);
- b=QuantumScale*DecodePixelGamma(blue);
+ r=QuantumScale*DecodePixelGamma((double) QuantumRange*red);
+ g=QuantumScale*DecodePixelGamma((double) QuantumRange*green);
+ b=QuantumScale*DecodePixelGamma((double) QuantumRange*blue);
+ *X=0.4865709486482162*r+0.26566769316909306*g+0.1982172852343625*b;
*X=0.7977604896723027*r+0.13518583717574031*g+0.03134934958152480000*b;
*Y=0.2880711282292934*r+0.71184321781010140*g+0.00008565396060525902*b;
*Z=0.0000000000000000*r+0.00000000000000000*g+0.82510460251046010000*b;
@@ -234,9 +235,9 @@
r=2.041587903810746500*X-0.56500697427885960*Y-0.34473135077832956*Z;
g=(-0.969243636280879500)*X+1.87596750150772020*Y+0.04155505740717557*Z;
b=0.013444280632031142*X-0.11836239223101838*Y+1.01517499439120540*Z;
- *red=EncodePixelGamma((double) QuantumRange*r);
- *green=EncodePixelGamma((double) QuantumRange*g);
- *blue=EncodePixelGamma((double) QuantumRange*b);
+ *red=QuantumScale*EncodePixelGamma((double) QuantumRange*r);
+ *green=QuantumScale*EncodePixelGamma((double) QuantumRange*g);
+ *blue=QuantumScale*EncodePixelGamma((double) QuantumRange*b);
}
static inline void ConvertXYZToDisplayP3(const double X,const double Y,
@@ -250,9 +251,9 @@
r=2.49349691194142500*X-0.93138361791912390*Y-0.402710784450716840*Z;
g=(-0.82948896956157470)*X+1.76266406031834630*Y+0.023624685841943577*Z;
b=0.03584583024378447*X-0.07617238926804182*Y+0.956884524007687200*Z;
- *red=EncodePixelGamma((double) QuantumRange*r);
- *green=EncodePixelGamma((double) QuantumRange*g);
- *blue=EncodePixelGamma((double) QuantumRange*b);
+ *red=QuantumScale*EncodePixelGamma((double) QuantumRange*r);
+ *green=QuantumScale*EncodePixelGamma((double) QuantumRange*g);
+ *blue=QuantumScale*EncodePixelGamma((double) QuantumRange*b);
}
static inline void ConvertXYZToLab(const double X,const double Y,const double Z,
@@ -316,9 +317,9 @@
r=1.3457989731028281*X-0.25558010007997534*Y-0.05110628506753401*Z;
g=(-0.5446224939028347)*X+1.50823274131327810*Y+0.02053603239147973*Z;
b=0.0000000000000000*X+0.0000000000000000*Y+1.21196754563894540*Z;
- *red=EncodePixelGamma((double) QuantumRange*r);
- *green=EncodePixelGamma((double) QuantumRange*g);
- *blue=EncodePixelGamma((double) QuantumRange*b);
+ *red=QuantumScale*EncodePixelGamma((double) QuantumRange*r);
+ *green=QuantumScale*EncodePixelGamma((double) QuantumRange*g);
+ *blue=QuantumScale*EncodePixelGamma((double) QuantumRange*b);
}
static inline void ConvertXYZToRGB(const double X,const double Y,const double Z,
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/geometry.c
^
|
@@ -85,25 +85,25 @@
MagickPagesize("4A0", "4768x6741"),
MagickPagesize("2A0", "3370x4768"),
MagickPagesize("a0", "2384x3370"),
+ MagickPagesize("a10", "74x105"),
MagickPagesize("a1", "1684x2384"),
MagickPagesize("a2", "1191x1684"),
MagickPagesize("a3", "842x1191"),
- MagickPagesize("a4", "595x842"),
MagickPagesize("a4small", "595x842"),
+ MagickPagesize("a4", "595x842"),
MagickPagesize("a5", "420x595"),
MagickPagesize("a6", "298x420"),
MagickPagesize("a7", "210x298"),
MagickPagesize("a8", "147x210"),
MagickPagesize("a9", "105x147"),
- MagickPagesize("a10", "74x105"),
MagickPagesize("archa", "648x864"),
MagickPagesize("archb", "864x1296"),
MagickPagesize("archC", "1296x1728"),
MagickPagesize("archd", "1728x2592"),
MagickPagesize("arche", "2592x3456"),
MagickPagesize("b0", "2920x4127"),
- MagickPagesize("b1", "2064x2920"),
MagickPagesize("b10", "91x127"),
+ MagickPagesize("b1", "2064x2920"),
MagickPagesize("b2", "1460x2064"),
MagickPagesize("b3", "1032x1460"),
MagickPagesize("b4", "729x1032"),
@@ -129,8 +129,8 @@
MagickPagesize("folio", "612x936"),
MagickPagesize("halfletter", "396x612"),
MagickPagesize("isob0", "2835x4008"),
- MagickPagesize("isob1", "2004x2835"),
MagickPagesize("isob10", "88x125"),
+ MagickPagesize("isob1", "2004x2835"),
MagickPagesize("isob2", "1417x2004"),
MagickPagesize("isob3", "1001x1417"),
MagickPagesize("isob4", "709x1001"),
@@ -148,8 +148,8 @@
MagickPagesize("jisb6", "128x182"),
MagickPagesize("ledger", "1224x792"),
MagickPagesize("legal", "612x1008"),
- MagickPagesize("letter", "612x792"),
MagickPagesize("lettersmall", "612x792"),
+ MagickPagesize("letter", "612x792"),
MagickPagesize("monarch", "279x540"),
MagickPagesize("quarto", "610x780"),
MagickPagesize("statement", "396x612"),
@@ -487,6 +487,8 @@
int
status;
+ if (Pagesizes[i].extent == 0)
+ break; /* sentinel */
status=LocaleNCompare(Pagesizes[i].name,page_geometry,Pagesizes[i].extent);
if (status == 0)
{
@@ -562,7 +564,7 @@
case SouthGravity:
case CenterGravity:
{
- region->x+=CastDoubleToLong(width/2.0-region->width/2.0);
+ region->x=CastDoubleToLong(width/2.0-region->width/2.0+region->x);
break;
}
case ForgetGravity:
@@ -585,7 +587,7 @@
case WestGravity:
case CenterGravity:
{
- region->y+=CastDoubleToLong(height/2.0-region->height/2.0);
+ region->y=CastDoubleToLong(height/2.0-region->height/2.0+region->y);
break;
}
case ForgetGravity:
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/identify.c
^
|
@@ -93,6 +93,7 @@
#include "MagickCore/string_.h"
#include "MagickCore/string-private.h"
#include "MagickCore/timer.h"
+#include "MagickCore/timer-private.h"
#include "MagickCore/token.h"
#include "MagickCore/utility.h"
#include "MagickCore/utility-private.h"
@@ -515,6 +516,9 @@
ImageType
type;
+ int
+ expired;
+
MagickBooleanType
ping;
@@ -1662,6 +1666,29 @@
image->rows/elapsed_time+0.5),MagickFalse,"P",MagickPathExtent,buffer);
(void) FormatLocaleFile(file," Pixels per second: %s\n",buffer);
}
+ if (image->ttl != (time_t) 0)
+ {
+ char
+ iso8601[sizeof("9999-99-99T99:99:99Z")];
+
+ int
+ seconds;
+
+ struct tm
+ timestamp;
+
+ (void) GetMagickUTCTime(&image->ttl,×tamp);
+ (void) strftime(iso8601,sizeof(iso8601),"%FT%TZ",×tamp);
+ seconds=MagickMax((int)(image->ttl-GetMagickTime()),0);
+ expired=' ';
+ if (seconds == 0)
+ expired='*';
+ (void) FormatLocaleFile(file," Time-to-live: %g:%02g:%02g:%02g%c %s\n",
+ ceil((double) (seconds/(3600*24))),
+ ceil((double) ((seconds % (24*3600))/3600)),
+ ceil((double) ((seconds % 3600)/60)),
+ ceil((double) ((seconds % 3600) % 60)),expired,iso8601);
+ }
(void) FormatLocaleFile(file," User time: %0.3fu\n",user_time);
(void) FormatLocaleFile(file," Elapsed time: %lu:%02lu.%03lu\n",
(unsigned long) (elapsed_time/60.0),(unsigned long) ceil(fmod(elapsed_time,
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/image.c
^
|
@@ -547,7 +547,7 @@
image_view=AcquireVirtualCacheView(next,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(next,next,next->rows,1)
+ magick_number_threads(next,next,next->rows,2)
#endif
for (y=0; y < (ssize_t) next->rows; y++)
{
@@ -1091,7 +1091,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(progress,status) \
- magick_number_threads(image,source_image,geometry->height,1)
+ magick_number_threads(image,source_image,geometry->height,2)
#endif
for (y=0; y < (ssize_t) geometry->height; y++)
{
@@ -1485,6 +1485,10 @@
(void) SetImageColorspace(mask_image,GRAYColorspace,exception);
image_view=AcquireVirtualCacheView(image,exception);
mask_view=AcquireAuthenticCacheView(mask_image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+ #pragma omp parallel for schedule(static) shared(status) \
+ magick_number_threads(image,image,image->rows,2)
+#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
const Quantum
@@ -1813,7 +1817,7 @@
*image_view;
MagickBooleanType
- status;
+ hdri = MagickFalse;
ssize_t
y;
@@ -1822,11 +1826,10 @@
assert(image->signature == MagickCoreSignature);
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
- status=MagickTrue;
image_view=AcquireVirtualCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ #pragma omp parallel for schedule(static) shared(hdri) \
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -1836,14 +1839,11 @@
ssize_t
x;
- if (status == MagickFalse)
+ if (hdri != MagickFalse)
continue;
p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
if (p == (const Quantum *) NULL)
- {
- status=MagickFalse;
- continue;
- }
+ continue;
for (x=0; x < (ssize_t) image->columns; x++)
{
ssize_t
@@ -1863,17 +1863,18 @@
pixel=(double) p[i];
if ((pixel < 0.0) || (pixel > (double) QuantumRange) ||
(pixel != (double) ((QuantumAny) pixel)))
- break;
+ {
+ hdri=MagickTrue;
+ break;
+ }
}
+ if (hdri != MagickFalse)
+ break;
p+=GetPixelChannels(image);
- if (i < (ssize_t) GetPixelChannels(image))
- status=MagickFalse;
}
- if (x < (ssize_t) image->columns)
- status=MagickFalse;
}
image_view=DestroyCacheView(image_view);
- return(status != MagickFalse ? MagickFalse : MagickTrue);
+ return(hdri);
#endif
}

@@ -2076,7 +2077,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -2276,7 +2277,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -2355,7 +2356,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -2443,6 +2444,10 @@
*/
status=MagickTrue;
image_view=AcquireAuthenticCacheView(image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+ #pragma omp parallel for schedule(static) shared(status) \
+ magick_number_threads(image,image,image->rows,2)
+#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
Quantum
@@ -2555,7 +2560,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -3273,7 +3278,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(mask,image,image->rows,1)
+ magick_number_threads(mask,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -3432,7 +3437,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -3937,7 +3942,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(range_exception,status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/image.h
^
|
@@ -27,26 +27,6 @@
typedef enum
{
- UndefinedAlphaChannel,
- ActivateAlphaChannel,
- AssociateAlphaChannel,
- BackgroundAlphaChannel,
- CopyAlphaChannel,
- DeactivateAlphaChannel,
- DiscreteAlphaChannel,
- DisassociateAlphaChannel,
- ExtractAlphaChannel,
- OffAlphaChannel,
- OnAlphaChannel,
- OpaqueAlphaChannel,
- RemoveAlphaChannel,
- SetAlphaChannel,
- ShapeAlphaChannel,
- TransparentAlphaChannel
-} AlphaChannelOption;
-
-typedef enum
-{
UndefinedType,
BilevelType,
GrayscaleType,
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/matrix.c
^
|
@@ -941,7 +941,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/module.c
^
|
@@ -17,7 +17,7 @@
% March 2000 %
% %
% %
-% Copyright @ 2000 ImageMagick Studio LLC, a non-profit organization %
+% Copyright @ 1999 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/opencl.c
^
|
@@ -94,10 +94,6 @@
#include "ltdl.h"
#endif
-#ifndef MAGICKCORE_WINDOWS_SUPPORT
-#include <dlfcn.h>
-#endif
-
/*
Define declarations.
*/
@@ -2479,11 +2475,7 @@
{
if ((library == (void *) NULL) || (functionName == (const char *) NULL))
return (void *) NULL;
-#ifdef MAGICKCORE_WINDOWS_SUPPORT
- return (void *) GetProcAddress((HMODULE)library,functionName);
-#else
- return (void *) dlsym(library,functionName);
-#endif
+ return lt_dlsym(library,functionName);
}
static MagickBooleanType BindOpenCLFunctions()
@@ -2493,9 +2485,9 @@
#else
(void) memset(openCL_library,0,sizeof(MagickLibrary));
#ifdef MAGICKCORE_WINDOWS_SUPPORT
- openCL_library->library=(void *)LoadLibraryA("OpenCL.dll");
+ openCL_library->library=(void *)lt_dlopen("OpenCL.dll");
#else
- openCL_library->library=(void *)dlopen("libOpenCL.so",RTLD_NOW);
+ openCL_library->library=(void *)lt_dlopen("libOpenCL.so");
#endif
#define BIND(X) \
if ((openCL_library->X=(MAGICKpfn_##X)OsLibraryGetFunctionAddress(openCL_library->library,#X)) == NULL) \
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/option.c
^
|
@@ -43,6 +43,7 @@
#include "MagickCore/studio.h"
#include "MagickCore/artifact.h"
#include "MagickCore/cache.h"
+#include "MagickCore/channel.h"
#include "MagickCore/color.h"
#include "MagickCore/compare.h"
#include "MagickCore/constitute.h"
@@ -112,6 +113,7 @@
{ "Disassociate", DisassociateAlphaChannel, UndefinedOptionFlag, MagickFalse },
{ "Extract", ExtractAlphaChannel, UndefinedOptionFlag, MagickFalse },
{ "Off", OffAlphaChannel, UndefinedOptionFlag, MagickFalse },
+ { "OffIfOpaque", OffIfOpaqueAlphaChannel, UndefinedOptionFlag, MagickFalse },
{ "On", OnAlphaChannel, UndefinedOptionFlag, MagickFalse },
{ "Opaque", OpaqueAlphaChannel, UndefinedOptionFlag, MagickFalse },
{ "Remove", RemoveAlphaChannel, UndefinedOptionFlag, MagickFalse },
@@ -303,7 +305,6 @@
{ "60", MetaPixelChannelBit(50), UndefinedOptionFlag, MagickFalse },
{ "61", MetaPixelChannelBit(51), UndefinedOptionFlag, MagickFalse },
{ "62", MetaPixelChannelBit(52), UndefinedOptionFlag, MagickFalse },
- { "63", MetaPixelChannelBit(53), UndefinedOptionFlag, MagickFalse },
#endif
{ (char *) NULL, UndefinedChannel, UndefinedOptionFlag, MagickFalse }
},
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/paint.c
^
|
@@ -153,7 +153,6 @@
*segment_info;
PixelInfo
- fill_color,
pixel;
SegmentInfo
@@ -325,6 +324,10 @@
} while (x <= x2);
}
status=MagickTrue;
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+ #pragma omp parallel for schedule(static) shared(status) \
+ magick_number_threads(floodplane_image,image,image->rows,2)
+#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
const Quantum
@@ -352,8 +355,21 @@
{
if (GetPixelGray(floodplane_image,p) != 0)
{
+ PixelInfo
+ fill_color;
+
GetFillColor(draw_info,x,y,&fill_color,exception);
- SetPixelViaPixelInfo(image,&fill_color,q);
+ if ((image->channel_mask & RedChannel) != 0)
+ SetPixelRed(image,(Quantum) fill_color.red,q);
+ if ((image->channel_mask & GreenChannel) != 0)
+ SetPixelGreen(image,(Quantum) fill_color.green,q);
+ if ((image->channel_mask & BlueChannel) != 0)
+ SetPixelBlue(image,(Quantum) fill_color.blue,q);
+ if ((image->channel_mask & BlackChannel) != 0)
+ SetPixelBlack(image,(Quantum) fill_color.black,q);
+ if (((image->channel_mask & AlphaChannel) != 0) &&
+ ((image->alpha_trait & BlendPixelTrait) != 0))
+ SetPixelAlpha(image,(Quantum) fill_color.alpha,q);
}
p+=GetPixelChannels(floodplane_image);
q+=GetPixelChannels(image);
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/pixel-private.h
^
|
@@ -22,6 +22,9 @@
extern "C" {
#endif
+extern MagickPrivate MagickBooleanType
+ ResetPixelChannelMap(Image *,ExceptionInfo *);
+
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/pixel.c
^
|
@@ -4340,92 +4340,6 @@
% %
% %
% %
-+ I n i t i a l i z e P i x e l C h a n n e l M a p %
-% %
-% %
-% %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% InitializePixelChannelMap() defines the standard pixel component map.
-%
-% The format of the InitializePixelChannelMap() method is:
-%
-% void InitializePixelChannelMap(Image *image)
-%
-% A description of each parameter follows:
-%
-% o image: the image.
-%
-*/
-MagickExport void InitializePixelChannelMap(Image *image)
-{
- PixelTrait
- trait;
-
- ssize_t
- n;
-
- assert(image != (Image *) NULL);
- assert(image->signature == MagickCoreSignature);
- (void) memset(image->channel_map,0,MaxPixelChannels*
- sizeof(*image->channel_map));
- trait=UpdatePixelTrait;
- if (image->alpha_trait != UndefinedPixelTrait)
- trait=(PixelTrait) (trait | BlendPixelTrait);
- n=0;
- if ((image->colorspace == LinearGRAYColorspace) ||
- (image->colorspace == GRAYColorspace))
- {
- SetPixelChannelAttributes(image,BluePixelChannel,trait,n);
- SetPixelChannelAttributes(image,GreenPixelChannel,trait,n);
- SetPixelChannelAttributes(image,RedPixelChannel,trait,n++);
- }
- else
- {
- SetPixelChannelAttributes(image,RedPixelChannel,trait,n++);
- SetPixelChannelAttributes(image,GreenPixelChannel,trait,n++);
- SetPixelChannelAttributes(image,BluePixelChannel,trait,n++);
- }
- if (image->colorspace == CMYKColorspace)
- SetPixelChannelAttributes(image,BlackPixelChannel,trait,n++);
- if (image->alpha_trait != UndefinedPixelTrait)
- SetPixelChannelAttributes(image,AlphaPixelChannel,CopyPixelTrait,n++);
- if (image->storage_class == PseudoClass)
- SetPixelChannelAttributes(image,IndexPixelChannel,CopyPixelTrait,n++);
- if ((image->channels & ReadMaskChannel) != 0)
- SetPixelChannelAttributes(image,ReadMaskPixelChannel,CopyPixelTrait,n++);
- if ((image->channels & WriteMaskChannel) != 0)
- SetPixelChannelAttributes(image,WriteMaskPixelChannel,CopyPixelTrait,n++);
- if ((image->channels & CompositeMaskChannel) != 0)
- SetPixelChannelAttributes(image,CompositeMaskPixelChannel,CopyPixelTrait,
- n++);
- if (image->number_meta_channels != 0)
- {
- PixelChannel
- meta_channel;
-
- ssize_t
- i;
-
- meta_channel=MetaPixelChannels;
- for (i=0; i < (ssize_t) image->number_meta_channels; i++)
- {
- assert(meta_channel < MaxPixelChannels);
- SetPixelChannelAttributes(image,meta_channel,UpdatePixelTrait,n);
- meta_channel=(PixelChannel) (meta_channel+1);
- n++;
- }
- }
- assert(n < MaxPixelChannels);
- image->number_channels=(size_t) n;
- (void) SetPixelChannelMask(image,image->channel_mask);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% %
-% %
-% %
% I n t e r p o l a t e P i x e l C h a n n e l %
% %
% %
@@ -4518,9 +4432,12 @@
MagickExport MagickBooleanType InterpolatePixelChannel(
const Image *magick_restrict image,const CacheView_ *image_view,
- const PixelChannel channel,const PixelInterpolateMethod method,
- const double x,const double y,double *pixel,ExceptionInfo *exception)
+ const PixelChannel channel,const PixelInterpolateMethod method,const double x,
+ const double y,double *pixel,ExceptionInfo *exception)
{
+ const Quantum
+ *magick_restrict p;
+
double
alpha[16],
gamma,
@@ -4535,13 +4452,8 @@
PixelTrait
traits;
- const Quantum
- *magick_restrict p;
-
- ssize_t
- i;
-
ssize_t
+ i,
x_offset,
y_offset;
@@ -6194,6 +6106,101 @@
% %
% %
% %
++ R e s e t P i x e l C h a n n e l M a p %
+% %
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ResetPixelChannelMap() defines the standard pixel component map.
+%
+% The format of the ResetPixelChannelMap() method is:
+%
+% MagickBooleanType ResetPixelChannelMap(Image *image)
+%
+% A description of each parameter follows:
+%
+% o image: the image.
+%
+% o exception: return any errors or warnings in this structure.
+%
+*/
+MagickPrivate MagickBooleanType ResetPixelChannelMap(Image *image,
+ ExceptionInfo *exception)
+{
+ PixelTrait
+ trait;
+
+ ssize_t
+ n;
+
+ assert(image != (Image *) NULL);
+ assert(image->signature == MagickCoreSignature);
+ (void) memset(image->channel_map,0,MaxPixelChannels*
+ sizeof(*image->channel_map));
+ trait=UpdatePixelTrait;
+ if (image->alpha_trait != UndefinedPixelTrait)
+ trait=(PixelTrait) (trait | BlendPixelTrait);
+ n=0;
+ if ((image->colorspace == LinearGRAYColorspace) ||
+ (image->colorspace == GRAYColorspace))
+ {
+ SetPixelChannelAttributes(image,BluePixelChannel,trait,n);
+ SetPixelChannelAttributes(image,GreenPixelChannel,trait,n);
+ SetPixelChannelAttributes(image,RedPixelChannel,trait,n++);
+ }
+ else
+ {
+ SetPixelChannelAttributes(image,RedPixelChannel,trait,n++);
+ SetPixelChannelAttributes(image,GreenPixelChannel,trait,n++);
+ SetPixelChannelAttributes(image,BluePixelChannel,trait,n++);
+ }
+ if (image->colorspace == CMYKColorspace)
+ SetPixelChannelAttributes(image,BlackPixelChannel,trait,n++);
+ if (image->alpha_trait != UndefinedPixelTrait)
+ SetPixelChannelAttributes(image,AlphaPixelChannel,CopyPixelTrait,n++);
+ if (image->storage_class == PseudoClass)
+ SetPixelChannelAttributes(image,IndexPixelChannel,CopyPixelTrait,n++);
+ if ((image->channels & ReadMaskChannel) != 0)
+ SetPixelChannelAttributes(image,ReadMaskPixelChannel,CopyPixelTrait,n++);
+ if ((image->channels & WriteMaskChannel) != 0)
+ SetPixelChannelAttributes(image,WriteMaskPixelChannel,CopyPixelTrait,n++);
+ if ((image->channels & CompositeMaskChannel) != 0)
+ SetPixelChannelAttributes(image,CompositeMaskPixelChannel,CopyPixelTrait,
+ n++);
+ if (image->number_meta_channels != 0)
+ {
+ PixelChannel
+ meta_channel;
+
+ ssize_t
+ i;
+
+ if (image->number_meta_channels >= (MaxPixelChannels-MetaPixelChannels))
+ {
+ image->number_channels=(size_t) n;
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/pixel.h
^
|
@@ -267,8 +267,7 @@
extern MagickExport void
ConformPixelInfo(Image *,const PixelInfo *,PixelInfo *,ExceptionInfo *),
- GetPixelInfo(const Image *,PixelInfo *),
- InitializePixelChannelMap(Image *);
+ GetPixelInfo(const Image *,PixelInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/profile.c
^
|
@@ -1940,8 +1940,9 @@
return(MagickTrue);
#else
(void) profile;
- (void) ThrowMagickException(exception,GetMagickModule(),MissingDelegateError,
- "DelegateLibrarySupportNotBuiltIn","`%s' (XML)",image->filename);
+ (void) ThrowMagickException(exception,GetMagickModule(),
+ MissingDelegateWarning,"DelegateLibrarySupportNotBuiltIn","`%s' (XML)",
+ image->filename);
return(MagickFalse);
#endif
}
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/property.c
^
|
@@ -859,14 +859,15 @@
\
for ( ; component < components; component++) \
{ \
- extent=(size_t) ((ssize_t) extent+FormatLocaleString(buffer+extent, \
- MagickPathExtent-extent,format", ",(arg1),(arg2),(arg3),(arg4),(arg5), \
- (arg6))); \
+ if (component != 0) \
+ extent+=(size_t) FormatLocaleString(buffer+extent,MagickPathExtent- \
+ extent,", "); \
+ extent+=(size_t) FormatLocaleString(buffer+extent,MagickPathExtent- \
+ extent,format,(arg1),(arg2),(arg3),(arg4),(arg5),(arg6)); \
if (extent >= (MagickPathExtent-1)) \
extent=MagickPathExtent-1; \
} \
- if (extent > 1) \
- buffer[extent-2]='\0'; \
+ buffer[extent]='\0'; \
value=AcquireString(buffer); \
}
@@ -880,13 +881,15 @@
\
for ( ; component < components; component++) \
{ \
- extent=(size_t) ((ssize_t) extent-FormatLocaleString(buffer+extent, \
- MagickPathExtent-extent,format", ",arg)); \
+ if (component != 0) \
+ extent+=(size_t) FormatLocaleString(buffer+extent,MagickPathExtent- \
+ extent,", "); \
+ extent+=(size_t) FormatLocaleString(buffer+extent,MagickPathExtent- \
+ extent,format,arg); \
if (extent >= (MagickPathExtent-1)) \
extent=MagickPathExtent-1; \
} \
- if (extent > 1) \
- buffer[extent-2]='\0'; \
+ buffer[extent]='\0'; \
value=AcquireString(buffer); \
}
@@ -900,13 +903,15 @@
\
for ( ; component < components; component++) \
{ \
- extent=(size_t) ((ssize_t) extent+FormatLocaleString(buffer+extent, \
- MagickPathExtent-extent,format", ",(arg1),(arg2))); \
+ if (component != 0) \
+ extent+=(size_t) FormatLocaleString(buffer+extent,MagickPathExtent-\
+ extent,", "); \
+ extent+=(size_t) FormatLocaleString(buffer+extent,MagickPathExtent- \
+ extent,format,(arg1),(arg2)); \
if (extent >= (MagickPathExtent-1)) \
extent=MagickPathExtent-1; \
} \
- if (extent > 1) \
- buffer[extent-2]='\0'; \
+ buffer[extent]='\0'; \
value=AcquireString(buffer); \
}
@@ -1479,7 +1484,7 @@
if ((all != 0) || (tag == (size_t) tag_value))
{
char
- buffer[MagickPathExtent],
+ buffer[6*sizeof(double)+MagickPathExtent],
*value;
if ((p < exif) || (p > (exif+length-tag_bytes[format])))
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/quantize.c
^
|
@@ -2413,12 +2413,12 @@
KmeansInfo
**kmeans_info;
- ssize_t
- i;
-
size_t
number_threads;
+ ssize_t
+ i;
+
number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
kmeans_info=(KmeansInfo **) AcquireQuantumMemory(number_threads,
sizeof(*kmeans_info));
@@ -2851,29 +2851,27 @@
return(ceil(x));
}
+static inline Quantum PosterizePixel(const Quantum pixel,const size_t levels)
+{
+ double posterize_pixel = QuantumRange*MagickRound(QuantumScale*(double)
+ pixel*(levels-1.0))/MagickMax(levels-1.0,1.0);
+ return(ClampToQuantum((MagickRealType) posterize_pixel));
+}
+
MagickExport MagickBooleanType PosterizeImage(Image *image,const size_t levels,
const DitherMethod dither_method,ExceptionInfo *exception)
{
#define PosterizeImageTag "Posterize/Image"
-#define PosterizePixel(pixel) ClampToQuantum((MagickRealType) QuantumRange*( \
- MagickRound(QuantumScale*(double) pixel*(levels-1)))/ \
- MagickMax((ssize_t) levels-1,1))
CacheView
*image_view;
MagickBooleanType
- status;
+ status = MagickTrue;
MagickOffsetType
progress;
- QuantizeInfo
- *quantize_info;
-
- ssize_t
- i;
-
ssize_t
y;
@@ -2883,95 +2881,178 @@
assert(exception->signature == MagickCoreSignature);
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
- if (image->storage_class == PseudoClass)
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp parallel for schedule(static) shared(progress,status) \
- magick_number_threads(image,image,image->colors,1)
-#endif
- for (i=0; i < (ssize_t) image->colors; i++)
+
+ if (dither_method != NoDitherMethod && levels > 1) {
+ Image
+ *map_image;
+
+ ssize_t
+ i;
+
+ size_t
+ channels = 0,
+ numPoolCols;
+
+ for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
- /*
- Posterize colormap.
- */
- if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
- image->colormap[i].red=(double)
- PosterizePixel(image->colormap[i].red);
- if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
- image->colormap[i].green=(double)
- PosterizePixel(image->colormap[i].green);
- if ((GetPixelBlueTraits(image) & UpdatePixelTrait) != 0)
- image->colormap[i].blue=(double)
- PosterizePixel(image->colormap[i].blue);
- if ((GetPixelAlphaTraits(image) & UpdatePixelTrait) != 0)
- image->colormap[i].alpha=(double)
- PosterizePixel(image->colormap[i].alpha);
+ PixelChannel channel = GetPixelChannelChannel(image,i);
+ PixelTrait traits = GetPixelChannelTraits(image,channel);
+ if ((traits & UpdatePixelTrait) != 0)
+ channels++;
}
- /*
- Posterize image.
- */
- status=MagickTrue;
- progress=0;
- image_view=AcquireAuthenticCacheView(image,exception);
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp parallel for schedule(static) shared(progress,status) \
- magick_number_threads(image,image,image->rows,1)
-#endif
- for (y=0; y < (ssize_t) image->rows; y++)
- {
- Quantum
- *magick_restrict q;
+ numPoolCols = pow (levels, channels);
- ssize_t
- x;
+ map_image = CloneImage(image, numPoolCols, 1, MagickTrue, exception);
+ if (map_image == (Image *) NULL)
+ return MagickFalse;
- if (status == MagickFalse)
- continue;
- q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
- if (q == (Quantum *) NULL)
- {
- status=MagickFalse;
- continue;
+ if (SetImageStorageClass (map_image, DirectClass, exception) == MagickFalse)
+ return MagickFalse;
+
+ { /* Populate the map image */
+ CacheView
+ *map_image_view;
+
+ Quantum
+ *magick_restrict q;
+
+ MagickRealType
+ valmult = QuantumRange / (levels - 1.0);
+
+ ssize_t
+ x, c;
+
+ map_image_view=AcquireAuthenticCacheView (map_image,exception);
+
+ q = GetCacheViewAuthenticPixels (map_image_view,0,0,numPoolCols,1,
+ exception);
+ if (q == (const Quantum *) NULL)
+ return MagickFalse;
+
+ for (x=0; x < (ssize_t) numPoolCols; x++) {
+ size_t rem = x;
+ for (c=0; c < (ssize_t) GetPixelChannels(image); c++) {
+ PixelChannel channel = GetPixelChannelChannel (image, c);
+ PixelTrait traits = GetPixelChannelTraits (image, channel);
+ if ((traits & UpdatePixelTrait) != 0) {
+ size_t val = rem % levels;
+ SetPixelChannel (map_image, channel, val * valmult, q);
+ rem = (rem - val) / levels;
+ }
+ }
+ q += GetPixelChannels (map_image);
}
- for (x=0; x < (ssize_t) image->columns; x++)
- {
- if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
- SetPixelRed(image,PosterizePixel(GetPixelRed(image,q)),q);
- if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
- SetPixelGreen(image,PosterizePixel(GetPixelGreen(image,q)),q);
- if ((GetPixelBlueTraits(image) & UpdatePixelTrait) != 0)
- SetPixelBlue(image,PosterizePixel(GetPixelBlue(image,q)),q);
- if (((GetPixelBlackTraits(image) & UpdatePixelTrait) != 0) &&
- (image->colorspace == CMYKColorspace))
- SetPixelBlack(image,PosterizePixel(GetPixelBlack(image,q)),q);
- if (((GetPixelAlphaTraits(image) & UpdatePixelTrait) != 0) &&
- (image->alpha_trait != UndefinedPixelTrait))
- SetPixelAlpha(image,PosterizePixel(GetPixelAlpha(image,q)),q);
- q+=GetPixelChannels(image);
+ if (SyncCacheViewAuthenticPixels (map_image_view,exception) == MagickFalse)
+ return MagickFalse;
+ map_image_view = DestroyCacheView (map_image_view);
}
- if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
- status=MagickFalse;
- if (image->progress_monitor != (MagickProgressMonitor) NULL)
+
+ { /* Remap to the map_image. */
+ ImageInfo *ii = AcquireImageInfo ();
+ QuantizeInfo *quantize_info = AcquireQuantizeInfo (ii);
+ quantize_info->dither_method = dither_method;
+ (void) RemapImage (quantize_info, image, map_image, exception);
+ quantize_info=DestroyQuantizeInfo(quantize_info);
+ }
+ map_image = DestroyImage (map_image);
+
+ } else {
+ /* No dither. */
+ if (image->storage_class == PseudoClass)
{
- MagickBooleanType
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/registry.c
^
|
@@ -17,7 +17,7 @@
% March 2000 %
% %
% %
-% Copyright @ 2000 ImageMagick Studio LLC, a non-profit organization %
+% Copyright @ 1999 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/resample.c
^
|
@@ -18,7 +18,7 @@
% August 2007 %
% %
% %
-% Copyright @ 2007 ImageMagick Studio LLC, a non-profit organization %
+% Copyright @ 1999 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/resize.c
^
|
@@ -3941,7 +3941,7 @@
sample_view=AcquireAuthenticCacheView(sample_image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,sample_image,sample_image->rows,1)
+ magick_number_threads(image,sample_image,sample_image->rows,2)
#endif
for (y=0; y < (ssize_t) sample_image->rows; y++)
{
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/resource.c
^
|
@@ -1212,10 +1212,9 @@
memory;
ssize_t
- i;
-
- ssize_t
files,
+ i,
+ number_threads,
pages,
pagesize;
@@ -1316,7 +1315,10 @@
100.0));
limit=DestroyString(limit);
}
- (void) SetMagickResourceLimit(ThreadResource,GetOpenMPMaximumThreads());
+ number_threads=(ssize_t) GetOpenMPMaximumThreads();
+ if (number_threads > 1)
+ number_threads--; /* reserve core for OS */
+ (void) SetMagickResourceLimit(ThreadResource,(size_t) number_threads);
limit=GetEnvironmentValue("MAGICK_THREAD_LIMIT");
if (limit != (char *) NULL)
{
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/shear.c
^
|
@@ -376,7 +376,7 @@
image_view=AcquireVirtualCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -433,7 +433,7 @@
(void) NullMatrix(source_matrices);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -775,7 +775,7 @@
tile_width=image->columns;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,rotate_image,image->rows/tile_height,1)
+ magick_number_threads(image,rotate_image,image->rows/tile_height,2)
#endif
for (tile_y=0; tile_y < (ssize_t) image->rows; tile_y+=(ssize_t) tile_height)
{
@@ -891,7 +891,7 @@
*/
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,rotate_image,image->rows,1)
+ magick_number_threads(image,rotate_image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -975,7 +975,7 @@
tile_width=image->columns;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,rotate_image,image->rows/tile_height,1)
+ magick_number_threads(image,rotate_image,image->rows/tile_height,2)
#endif
for (tile_y=0; tile_y < (ssize_t) image->rows; tile_y+=(ssize_t) tile_height)
{
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/statistic.c
^
|
@@ -2020,6 +2020,20 @@
}
}
+static inline long double PerceptibleReciprocalLD(const long double x)
+{
+ long double
+ sign;
+
+ /*
+ Return 1/x where x is perceptible (not unlimited or infinitesimal).
+ */
+ sign=x < 0.0 ? -1.0 : 1.0;
+ if ((sign*x) >= MagickEpsilon)
+ return(1.0/x);
+ return(sign/MagickEpsilon);
+}
+
MagickExport ChannelStatistics *GetImageStatistics(const Image *image,
ExceptionInfo *exception)
{
@@ -2027,10 +2041,11 @@
*channel_statistics;
double
+ *histogram;
+
+ long double
area,
- channels,
- *histogram,
- standard_deviation;
+ channels;
MagickStatusType
status;
@@ -2055,8 +2070,8 @@
assert(image->signature == MagickCoreSignature);
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
- histogram=(double *) AcquireQuantumMemory(MaxMap+1UL,GetPixelChannels(image)*
- sizeof(*histogram));
+ histogram=(double *) AcquireQuantumMemory(MaxMap+1UL,
+ MagickMax(GetPixelChannels(image),1)*sizeof(*histogram));
channel_statistics=(ChannelStatistics *) AcquireQuantumMemory(
MaxPixelChannels+1,sizeof(*channel_statistics));
if ((channel_statistics == (ChannelStatistics *) NULL) ||
@@ -2067,15 +2082,24 @@
if (channel_statistics != (ChannelStatistics *) NULL)
channel_statistics=(ChannelStatistics *) RelinquishMagickMemory(
channel_statistics);
+ (void) ThrowMagickException(exception,GetMagickModule(),
+ ResourceLimitError,"MemoryAllocationFailed","`%s'",image->filename);
return(channel_statistics);
}
(void) memset(channel_statistics,0,(MaxPixelChannels+1)*
sizeof(*channel_statistics));
for (i=0; i <= (ssize_t) MaxPixelChannels; i++)
{
- channel_statistics[i].depth=1;
- channel_statistics[i].maxima=(-MagickMaximumValue);
- channel_statistics[i].minima=MagickMaximumValue;
+ ChannelStatistics *cs = channel_statistics+i;
+ cs->area = 0;
+ cs->depth=1;
+ cs->maxima=(-MagickMaximumValue);
+ cs->minima=MagickMaximumValue;
+ cs->sum=cs->sumLD=0;
+ cs->mean=0;
+ cs->standard_deviation = cs->variance = 0.0;
+ cs->skewness = cs->kurtosis = 0.0;
+ cs->entropy = 0.0;
}
(void) memset(histogram,0,(MaxMap+1)*GetPixelChannels(image)*
sizeof(*histogram));
@@ -2102,78 +2126,108 @@
}
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
+ ChannelStatistics
+ *cs;
+
PixelChannel channel = GetPixelChannelChannel(image,i);
PixelTrait traits = GetPixelChannelTraits(image,channel);
if (traits == UndefinedPixelTrait)
continue;
- if ((traits & UpdatePixelTrait) == 0)
- continue;
- if (channel_statistics[channel].depth != MAGICKCORE_QUANTUM_DEPTH)
+ cs=channel_statistics+i;
+ if (cs->depth != MAGICKCORE_QUANTUM_DEPTH)
{
- depth=channel_statistics[channel].depth;
+ depth=cs->depth;
range=GetQuantumRange(depth);
status=p[i] != ScaleAnyToQuantum(ScaleQuantumToAny(p[i],range),
range) ? MagickTrue : MagickFalse;
if (status != MagickFalse)
{
- channel_statistics[channel].depth++;
- if (channel_statistics[channel].depth >
- channel_statistics[CompositePixelChannel].depth)
- channel_statistics[CompositePixelChannel].depth=
- channel_statistics[channel].depth;
+ cs->depth++;
+ if (cs->depth > channel_statistics[CompositePixelChannel].depth)
+ channel_statistics[CompositePixelChannel].depth=cs->depth;
i--;
continue;
}
}
- if ((double) p[i] < channel_statistics[channel].minima)
- channel_statistics[channel].minima=(double) p[i];
- if ((double) p[i] > channel_statistics[channel].maxima)
- channel_statistics[channel].maxima=(double) p[i];
- channel_statistics[channel].sum+=QuantumScale*p[i];
- channel_statistics[channel].sum_squared+=QuantumScale*p[i]*
- QuantumScale*p[i];
- channel_statistics[channel].sum_cubed+=QuantumScale*p[i]*
- QuantumScale*p[i]*QuantumScale*p[i];
- channel_statistics[channel].sum_fourth_power+=QuantumScale*p[i]*
- QuantumScale*p[i]*QuantumScale*p[i]*QuantumScale*p[i];
- channel_statistics[channel].area++;
- if ((double) p[i] < channel_statistics[CompositePixelChannel].minima)
- channel_statistics[CompositePixelChannel].minima=p[i];
- if ((double) p[i] > channel_statistics[CompositePixelChannel].maxima)
- channel_statistics[CompositePixelChannel].maxima=p[i];
+
+ cs->area++;
+
+ if ((double) p[i] < cs->minima)
+ cs->minima=(double) p[i];
+ if ((double) p[i] > cs->maxima)
+ cs->maxima=(double) p[i];
+
histogram[(ssize_t) GetPixelChannels(image)*ScaleQuantumToMap(
- ClampToQuantum(p[i]))+i]++;
- channel_statistics[CompositePixelChannel].sum+=QuantumScale*p[i];
- channel_statistics[CompositePixelChannel].sum_squared+=QuantumScale*
- p[i]*QuantumScale*p[i];
- channel_statistics[CompositePixelChannel].sum_cubed+=QuantumScale*
- p[i]*QuantumScale*p[i]*QuantumScale*p[i];
- channel_statistics[CompositePixelChannel].sum_fourth_power+=
- QuantumScale*p[i]*QuantumScale*p[i]*QuantumScale*p[i]*
- QuantumScale*p[i];
- channel_statistics[CompositePixelChannel].area++;
+ ClampToQuantum((double) p[i]))+i]++;
+
+ cs->sumLD += (long double) p[i];
+ /* sum_squared, sum_cubed and sum_fourth_power are not used in MagickCore or MagickWand,
+ but are made available in Magick++/lib/Statistic.cpp, so we need to calculate these.
+ */
+ cs->sum_squared+=(double) p[i]*(double) p[i];
+ cs->sum_cubed+=(double) p[i]*(double) p[i]*(double) p[i];
+ cs->sum_fourth_power+=(double) p[i]*(double) p[i]*(double) p[i]*
+ (double) p[i];
+
+ {
+ /* Calculate running totals for Welford's method.
+ */
+ long double delta, delta_n, delta_n2, term1;
+ double n1 = cs->area-1;
+ double n = cs->area;
+
+ delta = (double) p[i] - cs->M1;
+ delta_n = delta / n;
+ delta_n2 = delta_n * delta_n;
+ term1 = delta * delta_n * n1;
+ cs->M4 += term1 * delta_n2 * (n*n - 3*n + 3) + 6 * delta_n2 *
+ cs->M2 - 4 * delta_n * cs->M3;
+ cs->M3 += term1 * delta_n * (n - 2) - 3 * delta_n * cs->M2;
+ cs->M2 += term1;
+ cs->M1 += delta_n;
+ }
}
p+=GetPixelChannels(image);
}
}
- for (i=0; i <= (ssize_t) MaxPixelChannels; i++)
+
+ for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
- /*
- Normalize pixel statistics.
- */
- area=PerceptibleReciprocal(channel_statistics[i].area);
- channel_statistics[i].sum*=area;
- channel_statistics[i].sum_squared*=area;
- channel_statistics[i].sum_cubed*=area;
- channel_statistics[i].sum_fourth_power*=area;
- channel_statistics[i].mean=channel_statistics[i].sum;
- channel_statistics[i].variance=channel_statistics[i].sum_squared;
- standard_deviation=sqrt(channel_statistics[i].variance-
- (channel_statistics[i].mean*channel_statistics[i].mean));
- standard_deviation=sqrt(PerceptibleReciprocal(channel_statistics[i].area-
- 1.0)*channel_statistics[i].area*standard_deviation*standard_deviation);
- channel_statistics[i].standard_deviation=standard_deviation;
+ ChannelStatistics
+ *cs;
+
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/statistic.h
^
|
@@ -46,6 +46,13 @@
skewness,
entropy,
median;
+
+ long double
+ sumLD,
+ M1,
+ M2,
+ M3,
+ M4;
} ChannelStatistics;
typedef struct _ChannelMoments
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/stream.c
^
|
@@ -55,6 +55,7 @@
#include "MagickCore/memory-private.h"
#include "MagickCore/pixel.h"
#include "MagickCore/pixel-accessor.h"
+#include "MagickCore/pixel-private.h"
#include "MagickCore/policy.h"
#include "MagickCore/quantum.h"
#include "MagickCore/quantum-private.h"
@@ -932,7 +933,9 @@
cache_info->columns=image->columns;
cache_info->rows=image->rows;
cache_info->number_channels=image->number_channels;
- InitializePixelChannelMap(image);
+ status=ResetPixelChannelMap(image,exception);
+ if (status == MagickFalse)
+ return((Quantum *) NULL);
ResetPixelCacheChannels(image);
image->cache=cache_info;
}
@@ -1046,12 +1049,14 @@
SetPixelCacheMethods(read_info->cache,&cache_methods);
read_info->stream=stream;
image=ReadImage(read_info,exception);
+ read_info=DestroyImageInfo(read_info);
if (image != (Image *) NULL)
{
- InitializePixelChannelMap(image);
+ MagickBooleanType status = ResetPixelChannelMap(image,exception);
+ if (status == MagickFalse)
+ return(DestroyImage(image));
ResetPixelCacheChannels(image);
}
- read_info=DestroyImageInfo(read_info);
return(image);
}

|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/thread-private.h
^
|
@@ -27,9 +27,8 @@
extern "C" {
#endif
-#define magick_number_threads(source,destination,chunk,multithreaded) \
- num_threads(GetMagickNumberThreads((source),(destination),(chunk), \
- (multithreaded)))
+#define magick_number_threads(source,destination,chunk,factor) \
+ num_threads(GetMagickNumberThreads((source),(destination),(chunk),(factor)))
#if defined(__clang__) || (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ > 10))
#define MagickCachePrefetch(address,mode,locality) \
__builtin_prefetch(address,mode,locality)
@@ -49,8 +48,10 @@
#endif
static inline int GetMagickNumberThreads(const Image *source,
- const Image *destination,const size_t chunk,int multithreaded)
+ const Image *destination,const size_t chunk,const int factor)
{
+#define WorkLoadFactor (64UL << factor)
+
const CacheType
destination_type = (CacheType) GetImagePixelCacheType(destination),
source_type = (CacheType) GetImagePixelCacheType(source);
@@ -61,15 +62,12 @@
/*
Return number of threads dependent on cache type and work load.
*/
- if (multithreaded == 0)
- return(1);
+ number_threads=(int) MagickMax(MagickMin(chunk/WorkLoadFactor,
+ GetMagickResourceLimit(ThreadResource)),1);
if (((source_type != MemoryCache) && (source_type != MapCache)) ||
((destination_type != MemoryCache) && (destination_type != MapCache)))
- number_threads=(int) MagickMin(GetMagickResourceLimit(ThreadResource),2);
- else
- number_threads=(int) MagickMin((ssize_t)
- GetMagickResourceLimit(ThreadResource),(ssize_t) (chunk)/64);
- return(MagickMax(number_threads,1));
+ number_threads=MagickMin(number_threads,2);
+ return(number_threads);
}
static inline MagickThreadType GetMagickThreadId(void)
@@ -160,7 +158,7 @@
omp_set_nested(value);
#else
static inline void SetOpenMPNested(const int magick_unused(value))
-{
+{
magick_unreferenced(value);
#endif
}
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/thread.c
^
|
@@ -16,7 +16,7 @@
% March 2003 %
% %
% %
-% Copyright @ 2003 ImageMagick Studio LLC, a non-profit organization %
+% Copyright @ 1999 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/threshold.c
^
|
@@ -250,13 +250,11 @@
*magick_restrict q;
ssize_t
- i,
- x;
-
- ssize_t
center,
+ i,
u,
- v;
+ v,
+ x;
if (status == MagickFalse)
continue;
@@ -837,7 +835,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(progress,status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -998,7 +996,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(progress,status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -1133,7 +1131,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(progress,status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -1340,7 +1338,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(progress,status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -1977,7 +1975,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(progress,status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -2147,7 +2145,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(progress,status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -2273,7 +2271,7 @@
#if defined(MAGICKCORE_OPENMP_SUPPORT)
key=GetRandomSecretKey(random_info[0]);
#pragma omp parallel for schedule(static) shared(progress,status) \
- magick_number_threads(image,image,image->rows,key == ~0UL)
+ magick_number_threads(image,image,image->rows,key == ~0UL ? 0 : 1)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -2410,7 +2408,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(progress,status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -2589,7 +2587,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(progress,status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/timer-private.h
^
|
@@ -24,7 +24,7 @@
#include "MagickCore/locale_.h"
-static inline void GetMagickUTCtime(const time_t *timep,struct tm *result)
+static inline void GetMagickUTCTime(const time_t *timep,struct tm *result)
{
#if defined(MAGICKCORE_HAVE_GMTIME_R)
(void) gmtime_r(timep,result);
@@ -56,6 +56,16 @@
#endif
}
+extern MagickExport time_t
+ GetMagickTime(void);
+
+static inline MagickBooleanType IsImageTTLExpired(const Image* image)
+{
+ if (image->ttl == (time_t) 0)
+ return(MagickFalse);
+ return(image->ttl < GetMagickTime() ? MagickTrue : MagickFalse);
+}
+
static inline time_t ParseMagickTimeToLive(const char *time_to_live)
{
char
@@ -90,19 +100,9 @@
return(ttl);
}
-extern MagickExport time_t
- GetMagickTime(void);
-
extern MagickPrivate void
SetMagickDatePrecision(const unsigned long);
-static inline MagickBooleanType IsImageTTLExpired(const Image* image)
-{
- if (image->ttl == (time_t) 0)
- return(MagickFalse);
- return(image->ttl < GetMagickTime() ? MagickTrue : MagickFalse);
-}
-
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/timer.c
^
|
@@ -284,7 +284,7 @@
limit=DestroyString(limit);
}
}
- GetMagickUTCtime(&time,&utc_time);
+ GetMagickUTCTime(&time,&utc_time);
count=FormatLocaleString(timestamp,length,
"%04d-%02d-%02dT%02d:%02d:%02d%+03d:00",utc_time.tm_year+1900,
utc_time.tm_mon+1,utc_time.tm_mday,utc_time.tm_hour,utc_time.tm_min,
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/transform.c
^
|
@@ -258,7 +258,7 @@
chop_view=AcquireAuthenticCacheView(chop_image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,chop_image,(size_t) extent.y,1)
+ magick_number_threads(image,chop_image,(size_t) extent.y,2)
#endif
for (y=0; y < (ssize_t) extent.y; y++)
{
@@ -323,7 +323,7 @@
*/
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(progress,status) \
- magick_number_threads(image,chop_image,image->rows-((size_t) extent.y+extent.height),1)
+ magick_number_threads(image,chop_image,image->rows-((size_t) extent.y+extent.height),2)
#endif
for (y=0; y < (ssize_t) (image->rows-((size_t) extent.y+extent.height)); y++)
{
@@ -680,7 +680,7 @@
crop_view=AcquireAuthenticCacheView(crop_image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,crop_image,crop_image->rows,1)
+ magick_number_threads(image,crop_image,crop_image->rows,2)
#endif
for (y=0; y < (ssize_t) crop_image->rows; y++)
{
@@ -1029,7 +1029,7 @@
excerpt_view=AcquireAuthenticCacheView(excerpt_image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(progress,status) \
- magick_number_threads(image,excerpt_image,excerpt_image->rows,1)
+ magick_number_threads(image,excerpt_image,excerpt_image->rows,2)
#endif
for (y=0; y < (ssize_t) excerpt_image->rows; y++)
{
@@ -1229,7 +1229,7 @@
flip_view=AcquireAuthenticCacheView(flip_image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,flip_image,flip_image->rows,1)
+ magick_number_threads(image,flip_image,flip_image->rows,2)
#endif
for (y=0; y < (ssize_t) flip_image->rows; y++)
{
@@ -1364,7 +1364,7 @@
flop_view=AcquireAuthenticCacheView(flop_image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(image,flop_image,flop_image->rows,1)
+ magick_number_threads(image,flop_image,flop_image->rows,2)
#endif
for (y=0; y < (ssize_t) flop_image->rows; y++)
{
@@ -1483,7 +1483,7 @@
destination_view=AcquireAuthenticCacheView(destination,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(source,destination,rows,1)
+ magick_number_threads(source,destination,rows,2)
#endif
for (y=0; y < (ssize_t) rows; y++)
{
@@ -1810,7 +1810,7 @@
splice_view=AcquireAuthenticCacheView(splice_image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(progress,status) \
- magick_number_threads(image,splice_image,(size_t) splice_geometry.y,1)
+ magick_number_threads(image,splice_image,(size_t) splice_geometry.y,2)
#endif
for (y=0; y < (ssize_t) splice_geometry.y; y++)
{
@@ -2162,7 +2162,7 @@
transpose_view=AcquireAuthenticCacheView(transpose_image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(progress,status) \
- magick_number_threads(image,transpose_image,image->rows,1)
+ magick_number_threads(image,transpose_image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -2300,7 +2300,7 @@
transverse_view=AcquireAuthenticCacheView(transverse_image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(progress,status) \
- magick_number_threads(image,transverse_image,image->rows,1)
+ magick_number_threads(image,transverse_image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/version.c
^
|
@@ -101,7 +101,7 @@
MagickExport const char *GetMagickDelegates(void)
{
static const char
- *delegates = ""
+ *delegates=""
#if defined(MAGICKCORE_AUTOTRACE_DELEGATE)
" autotrace"
#endif
@@ -221,6 +221,8 @@
" zstd"
#endif
;
+ if (*delegates == '\0')
+ return(delegates);
return(delegates+1);
}

|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/vision.c
^
|
@@ -236,10 +236,8 @@
else
if (foreground == 2)
{
- if ((((ssize_t) pixels[0] == i) &&
- ((ssize_t) pixels[3] == i)) ||
- (((ssize_t) pixels[1] == i) &&
- ((ssize_t) pixels[2] == i)))
+ if ((((ssize_t) pixels[0] == i) && ((ssize_t) pixels[3] == i)) ||
+ (((ssize_t) pixels[1] == i) && ((ssize_t) pixels[2] == i)))
pattern[0]++; /* diagonal */
else
pattern[2]++;
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickCore/visual-effects.c
^
|
@@ -192,7 +192,7 @@
#if defined(MAGICKCORE_OPENMP_SUPPORT)
key=GetRandomSecretKey(random_info[0]);
#pragma omp parallel for schedule(static) shared(progress,status) \
- magick_number_threads(image,noise_image,image->rows,key == ~0UL)
+ magick_number_threads(image,noise_image,image->rows,key == ~0UL ? 0 : 2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -611,7 +611,7 @@
image_view=AcquireAuthenticCacheView(colorize_image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(progress,status) \
- magick_number_threads(colorize_image,colorize_image,colorize_image->rows,1)
+ magick_number_threads(colorize_image,colorize_image,colorize_image->rows,2)
#endif
for (y=0; y < (ssize_t) colorize_image->rows; y++)
{
@@ -1267,7 +1267,7 @@
morph_view=AcquireAuthenticCacheView(morph_images,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(morph_image,morph_image,morph_image->rows,1)
+ magick_number_threads(morph_image,morph_image,morph_image->rows,2)
#endif
for (y=0; y < (ssize_t) morph_images->rows; y++)
{
@@ -2216,7 +2216,7 @@
#if defined(MAGICKCORE_OPENMP_SUPPORT)
key=GetRandomSecretKey(random_info[0]);
#pragma omp parallel for schedule(static) shared(status) \
- magick_number_threads(random_image,random_image,random_image->rows,key == ~0UL)
+ magick_number_threads(random_image,random_image,random_image->rows,key == ~0UL ? 0 : 2)
#endif
for (y=0; y < (ssize_t) random_image->rows; y++)
{
@@ -2387,7 +2387,7 @@
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(progress,status) \
- magick_number_threads(image,image,image->rows,1)
+ magick_number_threads(image,image,image->rows,2)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickWand/MagickWand-config.in
^
|
@@ -6,6 +6,9 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
+libdir=@libdir@
+pkgconfigdir=@pkgconfigdir@
+export PKG_CONFIG_LIBDIR="${pkgconfigdir}"
usage="\
Usage: MagickWand-config [--cflags] [--cppflags] [--exec-prefix] [--ldflags] [--libs] [--prefix] [--version]"
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/MagickWand/studio.h
^
|
@@ -97,10 +97,6 @@
#if defined(MAGICKWAND_WINDOWS_SUPPORT) && defined(_DEBUG)
#define _CRTDBG_MAP_ALLOC
#endif
-
-#if defined(MAGICKWAND_WINDOWS_SUPPORT) && defined(_DEBUG)
-#define _CRTDBG_MAP_ALLOC
-#endif
#if defined(MAGICKWAND_WINDOWS_SUPPORT)
# include <io.h>
#if !defined(__CYGWIN__)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/Makefile.in
^
|
@@ -263,8 +263,7 @@
@MAGICKCORE_ZERO_CONFIGURATION_SUPPORT_TRUE@am__append_5 = MagickCore/threshold-map.h
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ac_func_fseeko.m4 \
- $(top_srcdir)/m4/ax_c___attribute__.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/ax_c___attribute__.m4 \
$(top_srcdir)/m4/ax_cflags_warn_all.m4 \
$(top_srcdir)/m4/ax_check_compile_flag.m4 \
$(top_srcdir)/m4/ax_check_framework.m4 \
@@ -3638,7 +3637,6 @@
BUILT_SOURCES =
MOSTLYCLEANFILES =
M4_EXTRA_DIST = \
- ac_func_fseeko.m4 \
ax_append_flag.m4 \
ax_c___attribute__.m4 \
ax_cflags_warn_all.m4 \
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/PerlMagick/MANIFEST
^
|
@@ -6,7 +6,6 @@
demo/compose-specials.pl
demo/composite.pl
demo/demo.pl
-demo/dst.png
demo/Generic.ttf
demo/lsys.pl
demo/Makefile
@@ -20,7 +19,6 @@
demo/shapes.pl
demo/single-pixels.pl
demo/smile.gif
-demo/src.png
demo/steganography.pl
demo/tile.gif
demo/tree.pl
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/PerlMagick/Magick.xs
^
|
@@ -1993,6 +1993,12 @@
}
break;
}
+ if (LocaleNCompare(attribute,"registry:",9) == 0)
+ {
+ (void) SetImageRegistry(StringRegistryType,attribute+9,SvPV(sval,na),
+ exception);
+ break;
+ }
if (LocaleCompare(attribute,"render") == 0)
{
sp=SvPOK(sval) ? ParseCommandOption(MagickIntentOptions,MagickFalse,
@@ -2158,13 +2164,6 @@
(void) SetMagickResourceLimit(TimeResource,limit);
break;
}
- if (LocaleCompare(attribute,"title") == 0)
- {
- for ( ; image; image=image->next)
- (void) CopyMagickString(image->magick_filename,SvPV(sval,na),
- MaxTextExtent);
- break;
- }
if (LocaleCompare(attribute,"transparent-color") == 0)
{
(void) QueryColorCompliance(SvPV(sval,na),AllCompliance,&target_color,
@@ -5633,6 +5632,18 @@
PUSHs(s ? sv_2mortal(s) : &sv_undef);
continue;
}
+ if (LocaleNCompare(attribute,"registry:",9) == 0)
+ {
+ const char
+ *value;
+
+ value=(const char *) GetImageRegistry(StringRegistryType,
+ attribute+9,exception);
+ if (value != (const char *) NULL)
+ s=newSVpv(value,0);
+ PUSHs(s ? sv_2mortal(s) : &sv_undef);
+ continue;
+ }
if (LocaleCompare(attribute,"rows") == 0)
{
if (image != (Image *) NULL)
@@ -5717,13 +5728,6 @@
PUSHs(s ? sv_2mortal(s) : &sv_undef);
continue;
}
- if (LocaleCompare(attribute,"title") == 0)
- {
- if (image != (Image *) NULL)
- s=newSVpv(image->magick_filename,0);
- PUSHs(s ? sv_2mortal(s) : &sv_undef);
- continue;
- }
if (LocaleCompare(attribute,"total-ink-density") == 0)
{
s=newSViv(MAGICKCORE_QUANTUM_DEPTH);
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/PerlMagick/demo/steganography.pl
^
|
@@ -15,7 +15,7 @@
$image->ReadImage('model.gif');
$image->SteganoImage(image=>$watermark,offset=>91);
$image->Write('model.pam');
-$image->Write('show:');
+$image->Write(magick=>'SHOW',title=>"Steganography Model");
#
# Extract image from image.
#
@@ -23,4 +23,4 @@
$stegano=Image::Magick->new(size=>$size);
$stegano->ReadImage('stegano:model.pam');
$stegano->Write('stegano.pam');
-$image->Write(magick=>'SHOW',title=>"Steganography Demo");
+$stegano->Write(magick=>'SHOW',title=>"Hidden Image");
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/PerlMagick/quantum/quantum.xs.in
^
|
@@ -1990,6 +1990,12 @@
}
break;
}
+ if (LocaleNCompare(attribute,"registry:",9) == 0)
+ {
+ (void) SetImageRegistry(StringRegistryType,attribute+9,SvPV(sval,na),
+ exception);
+ break;
+ }
if (LocaleCompare(attribute,"render") == 0)
{
sp=SvPOK(sval) ? ParseCommandOption(MagickIntentOptions,MagickFalse,
@@ -5634,6 +5640,18 @@
PUSHs(s ? sv_2mortal(s) : &sv_undef);
continue;
}
+ if (LocaleNCompare(attribute,"registry:",9) == 0)
+ {
+ const char
+ *value;
+
+ value=(const char *) GetImageRegistry(StringRegistryType,
+ attribute+9,exception);
+ if (value != (const char *) NULL)
+ s=newSVpv(value,0);
+ PUSHs(s ? sv_2mortal(s) : &sv_undef);
+ continue;
+ }
if (LocaleCompare(attribute,"rows") == 0)
{
if (image != (Image *) NULL)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/aclocal.m4
^
|
@@ -1267,7 +1267,6 @@
AC_SUBST([am__untar])
]) # _AM_PROG_TAR
-m4_include([m4/ac_func_fseeko.m4])
m4_include([m4/ax_c___attribute__.m4])
m4_include([m4/ax_cflags_warn_all.m4])
m4_include([m4/ax_check_compile_flag.m4])
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/bmp.c
^
|
@@ -1827,7 +1827,7 @@
*p;
const StringInfo
- *profile;
+ *profile = (const StringInfo *) NULL;
MagickBooleanType
have_color_info,
@@ -2016,7 +2016,8 @@
}
bytes_per_line=4*((image->columns*bmp_info.bits_per_pixel+31)/32);
bmp_info.ba_offset=0;
- profile=GetImageProfile(image,"icc");
+ if (type > 3)
+ profile=GetImageProfile(image,"icc");
have_color_info=(image->rendering_intent != UndefinedIntent) ||
(profile != (StringInfo *) NULL) || (image->gamma != 0.0) ? MagickTrue :
MagickFalse;
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/caption.c
^
|
@@ -277,19 +277,21 @@
if (status == MagickFalse)
break;
AdjustTypeMetricBounds(&metrics);
- width=CastDoubleToUnsigned(metrics.width+draw_info->stroke_width+0.5);
- height=CastDoubleToUnsigned(metrics.height-metrics.underline_position+
+ width=CastDoubleToUnsigned(metrics.width+draw_info->stroke_width+
+ 0.5);
+ height=CastDoubleToUnsigned(
+ metrics.height-metrics.underline_position+
draw_info->interline_spacing+draw_info->stroke_width+0.5);
if ((image->columns != 0) && (image->rows != 0))
{
- if ((width >= image->columns) || (height >= image->rows))
+ if ((width > image->columns) && (height > image->rows))
break;
- if ((width < image->columns) && (height < image->rows))
+ if ((width <= image->columns) && (height <= image->rows))
low=draw_info->pointsize;
}
else
- if (((image->columns != 0) && (width >= image->columns)) ||
- ((image->rows != 0) && (height >= image->rows)))
+ if (((image->columns != 0) && (width > image->columns)) ||
+ ((image->rows != 0) && (height > image->rows)))
break;
}
high=draw_info->pointsize;
@@ -315,19 +317,20 @@
draw_info->interline_spacing+draw_info->stroke_width+0.5);
if ((image->columns != 0) && (image->rows != 0))
{
- if ((width < image->columns) && (height < image->rows))
+ if ((width <= image->columns) && (height <= image->rows))
low=draw_info->pointsize+0.5;
else
high=draw_info->pointsize-0.5;
}
else
- if (((image->columns != 0) && (width < image->columns)) ||
- ((image->rows != 0) && (height < image->rows)))
+ if (((image->columns != 0) && (width <= image->columns)) ||
+ ((image->rows != 0) && (height <= image->rows)))
low=draw_info->pointsize+0.5;
else
high=draw_info->pointsize-0.5;
}
- draw_info->pointsize=floor((low+high)/2.0-0.5);
+ if (status != MagickFalse)
+ draw_info->pointsize=floor((low+high)/2.0-0.5);
}
/*
Draw caption.
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/cin.c
^
|
@@ -998,7 +998,7 @@
offset+=WriteBlob(image,sizeof(cin.file.filename),(unsigned char *)
cin.file.filename);
seconds=GetMagickTime();
- GetMagickUTCtime(&seconds,&utc_time);
+ GetMagickUTCTime(&seconds,&utc_time);
(void) memset(timestamp,0,sizeof(timestamp));
(void) strftime(timestamp,MagickPathExtent,"%Y:%m:%d:%H:%M:%SUTC",&utc_time);
(void) memset(cin.file.create_date,0,sizeof(cin.file.create_date));
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/dds.c
^
|
@@ -1417,7 +1417,7 @@
status;
/*
- Only skip mipmaps for textures and cube maps
+ Only read mipmaps for textures and cube maps
*/
if (EOFBlob(image) != MagickFalse)
{
@@ -1567,7 +1567,7 @@
/*
Skip the mipmap images for compressed (DXTn) dds files
*/
-static MagickBooleanType SkipDXTMipmaps(Image *image,const DDSInfo *dds_info,
+static MagickBooleanType SkipMipmaps(Image *image,const DDSInfo *dds_info,
int texel_size,ExceptionInfo *exception)
{
/*
@@ -1605,10 +1605,10 @@
texel_size);
if (SeekBlob(image,offset,SEEK_CUR) < 0)
break;
- w=DIV2(w);
- h=DIV2(h);
if ((w == 1) && (h == 1))
break;
+ w=DIV2(w);
+ h=DIV2(h);
}
}
return(MagickTrue);
@@ -1624,7 +1624,7 @@
if (read_mipmaps != MagickFalse)
return(ReadMipmaps(image_info,image,dds_info,ReadDXT1Pixels,exception));
else
- return(SkipDXTMipmaps(image,dds_info,8,exception));
+ return(SkipMipmaps(image,dds_info,8,exception));
}
static MagickBooleanType ReadDXT3Pixels(Image *image,
@@ -1726,7 +1726,7 @@
if (read_mipmaps != MagickFalse)
return(ReadMipmaps(image_info,image,dds_info,ReadDXT3Pixels,exception));
else
- return(SkipDXTMipmaps(image,dds_info,16,exception));
+ return(SkipMipmaps(image,dds_info,16,exception));
}
static MagickBooleanType ReadDXT5Pixels(Image *image,
@@ -1841,7 +1841,7 @@
if (read_mipmaps != MagickFalse)
return(ReadMipmaps(image_info,image,dds_info,ReadDXT5Pixels,exception));
else
- return(SkipDXTMipmaps(image,dds_info,16,exception));
+ return(SkipMipmaps(image,dds_info,16,exception));
}
static unsigned char GetBit(const unsigned char *block,size_t *start_bit)
@@ -2148,7 +2148,7 @@
if (read_mipmaps != MagickFalse)
return(ReadMipmaps(image_info,image,dds_info,ReadBC5Pixels,exception));
else
- return(SkipDXTMipmaps(image,dds_info,16,exception));
+ return(SkipMipmaps(image,dds_info,16,exception));
}
static MagickBooleanType ReadBC7Pixels(Image *image,
@@ -2365,7 +2365,7 @@
if (read_mipmaps != MagickFalse)
return(ReadMipmaps(image_info,image,dds_info,ReadBC7Pixels,exception));
else
- return(SkipDXTMipmaps(image,dds_info,16,exception));
+ return(SkipMipmaps(image,dds_info,16,exception));
}
static MagickBooleanType ReadUncompressedRGBPixels(Image *image,
@@ -2955,10 +2955,7 @@
image->endian=LSBEndian;
image->depth=8;
if (image_info->ping != MagickFalse)
- {
- (void) CloseBlob(image);
- return(GetFirstImageInList(image));
- }
+ continue;
status=SetImageExtent(image,image->columns,image->rows,exception);
if (status == MagickFalse)
return(DestroyImageList(image));
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/djvu.c
^
|
@@ -607,6 +607,8 @@
if (tag == 0) break;
} while (!ddjvu_page_decoding_done(lc->page));
+ if (ddjvu_page_decoding_error(lc->page) != 0)
+ ThrowReaderException(CorruptImageError,"CorruptImage");
ddjvu_document_get_pageinfo(lc->document, pagenum, &info);
image->resolution.x = (float) info.dpi;
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/dng.c
^
|
@@ -333,6 +333,21 @@
const char
*option;
+#if LIBRAW_COMPILE_CHECK_VERSION_NOTLESS(0,20)
+#if LIBRAW_COMPILE_CHECK_VERSION_NOTLESS(0,21)
+ raw_info->rawparams.max_raw_memory_mb=8192;
+#else
+ raw_info->params.max_raw_memory_mb=8192;
+#endif
+ option=GetImageOption(image_info,"dng:max-raw-memory");
+ if (option != (const char *) NULL)
+#if LIBRAW_COMPILE_CHECK_VERSION_NOTLESS(0,21)
+ raw_info->rawparams.max_raw_memory_mb=(unsigned int)
+ StringToInteger(option);
+#else
+ raw_info->params.max_raw_memory_mb=(unsigned int) StringToInteger(option);
+#endif
+#endif
raw_info->params.user_flip=0;
raw_info->params.output_bps=16;
raw_info->params.use_camera_wb=1;
@@ -428,10 +443,11 @@
SetImageProperty(image,"dng:thumbnail.type","bitmap",exception);
(void) FormatLocaleString(value,sizeof(value),"%hu",thumbnail->bits);
SetImageProperty(image,"dng:thumbnail.bits",value,exception);
- (void) FormatLocaleString(value,sizeof(value),"%hu",thumbnail->colors);
+ (void) FormatLocaleString(value,sizeof(value),"%hu",
+ thumbnail->colors);
SetImageProperty(image,"dng:thumbnail.colors",value,exception);
- (void) FormatLocaleString(value,sizeof(value),"%hux%hu",thumbnail->width,
- thumbnail->height);
+ (void) FormatLocaleString(value,sizeof(value),"%hux%hu",
+ thumbnail->width,thumbnail->height);
SetImageProperty(image,"dng:thumbnail.geometry",value,exception);
}
profile=BlobToStringInfo(thumbnail->data,thumbnail->data_size);
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/dng.h
^
|
@@ -17,13 +17,15 @@
#include "coders/coders-private.h"
#define MagickDNGHeaders \
- MagickCoderHeader("CR2", 0, "\115\115\000\052\000\020\000\000\122\103\002") \
- MagickCoderHeader("CR2", 0, "\111\111\052\000\020\000\000\000\103\122\002") \
+ MagickCoderHeader("CR2", 0, "MM\x00\x2a\x00\x10\x00\x00RC\x02") \
+ MagickCoderHeader("CR2", 0, "II\x2a\x00\x10\x00\x00\x00CR\x02") \
MagickCoderHeader("CR3", 4, "ftypcrx ") \
MagickCoderHeader("CRW", 0, "II\x1a\x00\x00\x00HEAPCCDR") \
MagickCoderHeader("ORF", 0, "IIRO\x08\x00\x00\x00") \
MagickCoderHeader("MRW", 0, "\x00MRM") \
- MagickCoderHeader("RAF", 0, "FUJIFILMCCD-RAW ")
+ MagickCoderHeader("RAF", 0, "FUJIFILMCCD-RAW ") \
+ MagickCoderHeader("RAW", 0, "IIU\x00\x08\x00\x00\x00") \
+ MagickCoderHeader("RW2", 0, "IIU\x00\x18\x00\x00\x00")
#define MagickDNGAliases \
MagickCoderAlias("DNG", "3FR") \
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/heic.c
^
|
@@ -79,6 +79,10 @@
#else
#include <libheif/heif.h>
#endif
+
+#define HEIC_COMPUTE_NUMERIC_VERSION(major,minor,patch) \
+ ((major<<24) | (minor<<16) | (patch<<8) | 0)
+
#endif

#if defined(MAGICKCORE_HEIC_DELEGATE)
@@ -564,7 +568,7 @@
if (filetype_check == heif_filetype_no)
ThrowReaderException(CoderError,"ImageTypeNotSupported");
(void) CloseBlob(image);
-#if LIBHEIF_NUMERIC_VERSION >= 0x010b0000
+#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,11,0)
if (heif_has_compatible_brand(magic,sizeof(magic), "avif") == 1)
(void) CopyMagickString(image->magick,"AVIF",MagickPathExtent);
#endif
@@ -727,7 +731,7 @@
*entry;
#if defined(MAGICKCORE_HEIC_DELEGATE)
-#if LIBHEIF_NUMERIC_VERSION >= 0x010e0000
+#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,14,0)
heif_init((struct heif_init_params *) NULL);
#endif
#endif
@@ -759,7 +763,7 @@
entry->flags|=CoderDecoderSeekableStreamFlag;
entry->flags^=CoderBlobSupportFlag;
(void) RegisterMagickInfo(entry);
-#if LIBHEIF_NUMERIC_VERSION > 0x01060200
+#if LIBHEIF_NUMERIC_VERSION > HEIC_COMPUTE_NUMERIC_VERSION(1,6,2)
entry=AcquireMagickInfo("HEIC","AVIF","AV1 Image File Format");
#if defined(MAGICKCORE_HEIC_DELEGATE)
if (heif_have_decoder_for_format(heif_compression_AV1))
@@ -800,13 +804,13 @@
*/
ModuleExport void UnregisterHEICImage(void)
{
-#if LIBHEIF_NUMERIC_VERSION > 0x01060200
+#if LIBHEIF_NUMERIC_VERSION > HEIC_COMPUTE_NUMERIC_VERSION(1,6,2)
(void) UnregisterMagickInfo("AVIF");
#endif
(void) UnregisterMagickInfo("HEIC");
(void) UnregisterMagickInfo("HEIF");
#if defined(MAGICKCORE_HEIC_DELEGATE)
-#if LIBHEIF_NUMERIC_VERSION >= 0x010e0000
+#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,14,0)
heif_deinit();
#endif
#endif
@@ -1172,7 +1176,7 @@
Image *image,ExceptionInfo *exception)
{
MagickBooleanType
-#if LIBHEIF_NUMERIC_VERSION > 0x01060200
+#if LIBHEIF_NUMERIC_VERSION > HEIC_COMPUTE_NUMERIC_VERSION(1,6,2)
encode_avif,
#endif
status;
@@ -1206,7 +1210,7 @@
return(status);
scene=0;
heif_context=heif_context_alloc();
-#if LIBHEIF_NUMERIC_VERSION > 0x01060200
+#if LIBHEIF_NUMERIC_VERSION > HEIC_COMPUTE_NUMERIC_VERSION(1,6,2)
encode_avif=(LocaleCompare(image_info->magick,"AVIF") == 0) ? MagickTrue :
MagickFalse;
#endif
@@ -1230,7 +1234,7 @@
/*
Get encoder for the specified format.
*/
-#if LIBHEIF_NUMERIC_VERSION > 0x01060200
+#if LIBHEIF_NUMERIC_VERSION > HEIC_COMPUTE_NUMERIC_VERSION(1,6,2)
if (encode_avif != MagickFalse)
error=heif_context_get_encoder_for_format(heif_context,
heif_compression_AV1,&heif_encoder);
@@ -1305,7 +1309,7 @@
status=IsHEIFSuccess(image,&error,exception);
if (status == MagickFalse)
break;
-#if LIBHEIF_NUMERIC_VERSION > 0x01060200
+#if LIBHEIF_NUMERIC_VERSION > HEIC_COMPUTE_NUMERIC_VERSION(1,6,2)
if (encode_avif != MagickFalse)
{
const char
@@ -1330,7 +1334,7 @@
}
#endif
options=heif_encoding_options_alloc();
-#if LIBHEIF_NUMERIC_VERSION >= 0x010e0000
+#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,14,0)
if (image->orientation != UndefinedOrientation)
options->image_orientation=(enum heif_orientation) image->orientation;
#endif
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/jbig.c
^
|
@@ -122,19 +122,12 @@
status;
Quantum
- index;
-
- ssize_t
- x;
-
- Quantum
+ index,
*q;
- unsigned char
- *p;
-
ssize_t
length,
+ x,
y;
struct jbg_dec_state
@@ -143,7 +136,8 @@
unsigned char
bit,
*buffer,
- byte;
+ byte,
+ *p;
/*
Open image file.
@@ -165,6 +159,9 @@
/*
Initialize JBIG toolkit.
*/
+ if ((image->columns != (unsigned long) image->columns) ||
+ (image->rows != (unsigned long) image->rows))
+ ThrowReaderException(ImageError,"WidthOrHeightExceedsLimit");
jbg_dec_init(&jbig_info);
jbg_dec_maxsize(&jbig_info,(unsigned long) image->columns,(unsigned long)
image->rows);
@@ -410,6 +407,9 @@
static MagickBooleanType WriteJBIGImage(const ImageInfo *image_info,
Image *image,ExceptionInfo *exception)
{
+ const Quantum
+ *p;
+
double
version;
@@ -422,20 +422,12 @@
MemoryInfo
*pixel_info;
- const Quantum
- *p;
-
- ssize_t
- x;
-
- unsigned char
- *q;
-
size_t
number_images,
number_packets;
ssize_t
+ x,
y;
struct jbg_enc_state
@@ -444,7 +436,8 @@
unsigned char
bit,
byte,
- *pixels;
+ *pixels,
+ *q;
/*
Open image file.
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/jp2.c
^
|
@@ -909,9 +909,7 @@
*jp2_stream;
ssize_t
- i;
-
- ssize_t
+ i,
y;
unsigned int
@@ -955,12 +953,12 @@
}
if (image_info->extract != (char *) NULL)
{
- RectangleInfo
- geometry;
-
int
flags;
+ RectangleInfo
+ geometry;
+
/*
Set tile size.
*/
@@ -1039,19 +1037,28 @@
parameters->tcp_numlayers=i+1;
parameters->cp_disto_alloc=OPJ_TRUE;
}
- if (image_info->sampling_factor != (const char *) NULL)
- (void) sscanf(image_info->sampling_factor,"%d:%d",
- ¶meters->subsampling_dx,¶meters->subsampling_dy);
+ if (image_info->sampling_factor != (char *) NULL)
+ {
+ GeometryInfo
+ geometry_info;
+
+ MagickStatusType
+ flags;
+
+ flags=ParseGeometry(image_info->sampling_factor,&geometry_info);
+ if ((flags & RhoValue) != 0)
+ parameters->subsampling_dx=(int) geometry_info.rho;
+ parameters->subsampling_dy=parameters->subsampling_dx;
+ if ((flags & SigmaValue) != 0)
+ parameters->subsampling_dy=(int) geometry_info.sigma;
+ }
property=GetImageProperty(image,"comment",exception);
if (property != (const char *) NULL)
parameters->cp_comment=(char *) property;
channels=3;
jp2_colorspace=OPJ_CLRSPC_SRGB;
if (image->colorspace == YUVColorspace)
- {
- jp2_colorspace=OPJ_CLRSPC_SYCC;
- parameters->subsampling_dx=2;
- }
+ jp2_colorspace=OPJ_CLRSPC_SYCC;
else
{
if (IsGrayColorspace(image->colorspace) != MagickFalse)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/json.c
^
|
@@ -17,7 +17,7 @@
% January 2014 %
% %
% %
-% Copyright @ 2014 ImageMagick Studio LLC, a non-profit organization %
+% Copyright @ 1999 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
@@ -718,11 +718,14 @@
n;
n=FormatLocaleFile(file,StatisticsFormat,name,GetMagickPrecision(),
+ channel_statistics[channel].minima == MagickMaximumValue ? 0.0 :
(double) ClampToQuantum(scale*channel_statistics[channel].minima),
- GetMagickPrecision(),(double) ClampToQuantum(scale*
- channel_statistics[channel].maxima),GetMagickPrecision(),
- scale*channel_statistics[channel].mean,GetMagickPrecision(),
- scale*channel_statistics[channel].median,GetMagickPrecision(),
+ GetMagickPrecision(),
+ channel_statistics[channel].maxima == -MagickMaximumValue ? 0.0 :
+ (double) ClampToQuantum(scale*channel_statistics[channel].maxima),
+ GetMagickPrecision(),scale*channel_statistics[channel].mean,
+ GetMagickPrecision(),scale*channel_statistics[channel].median,
+ GetMagickPrecision(),
IsNaN(channel_statistics[channel].standard_deviation) != 0 ? MagickEpsilon :
scale*channel_statistics[channel].standard_deviation,GetMagickPrecision(),
channel_statistics[channel].kurtosis,GetMagickPrecision(),
@@ -1730,7 +1733,9 @@
(void) WriteBlobString(image,"[");
image->magick_columns=image->columns;
image->magick_rows=image->rows;
- (void) EncodeImageAttributes(image,file,exception);
+ status=EncodeImageAttributes(image,file,exception);
+ if (status == MagickFalse)
+ break;
if (GetNextImageInList(image) == (Image *) NULL)
{
(void) WriteBlobString(image,"]");
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/jxl.c
^
|
@@ -64,6 +64,7 @@
#include <jxl/decode.h>
#include <jxl/encode.h>
#include <jxl/thread_parallel_runner.h>
+#include <jxl/version.h>
#endif

/*
@@ -84,7 +85,7 @@
*/
static MagickBooleanType
WriteJXLImage(const ImageInfo *,Image *,ExceptionInfo *);
-
+
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
@@ -337,8 +338,8 @@
/*
Initialize JXL delegate library.
*/
- memset(&basic_info,0,sizeof(basic_info));
- memset(&pixel_format,0,sizeof(pixel_format));
+ (void) memset(&basic_info,0,sizeof(basic_info));
+ (void) memset(&pixel_format,0,sizeof(pixel_format));
JXLSetMemoryManager(&memory_manager,&memory_manager_info,image,exception);
jxl_info=JxlDecoderCreate(&memory_manager);
if (jxl_info == (JxlDecoder *) NULL)
@@ -402,7 +403,7 @@
remaining=JxlDecoderReleaseInput(jxl_info);
if (remaining > 0)
- memmove(pixels,pixels+input_size-remaining,remaining);
+ (void) memmove(pixels,pixels+input_size-remaining,remaining);
count=ReadBlob(image,input_size-remaining,pixels+remaining);
if (count <= 0)
{
@@ -446,7 +447,7 @@
StringInfo
*profile;
- memset(&color_encoding,0,sizeof(color_encoding));
+ (void) memset(&color_encoding,0,sizeof(color_encoding));
JXLSetFormat(image,&pixel_format,exception);
#if JPEGXL_NUMERIC_VERSION >= JPEGXL_COMPUTE_NUMERIC_VERSION(0,9,0)
jxl_status=JxlDecoderGetColorAsEncodedProfile(jxl_info,
@@ -948,9 +949,9 @@
/*
Initialize JXL delegate library.
*/
- memset(&basic_info,0,sizeof(basic_info));
- memset(&frame_header,0,sizeof(frame_header));
- memset(&pixel_format,0,sizeof(pixel_format));
+ (void) memset(&basic_info,0,sizeof(basic_info));
+ (void) memset(&frame_header,0,sizeof(frame_header));
+ (void) memset(&pixel_format,0,sizeof(pixel_format));
JXLSetMemoryManager(&memory_manager,&memory_manager_info,image,exception);
jxl_info=JxlEncoderCreate(&memory_manager);
if (jxl_info == (JxlEncoder *) NULL)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/label.c
^
|
@@ -214,19 +214,21 @@
if (status == MagickFalse)
break;
AdjustTypeMetricBounds(&metrics);
- width=CastDoubleToUnsigned(metrics.width+draw_info->stroke_width+0.5);
- height=CastDoubleToUnsigned(metrics.height-metrics.underline_position+
+ width=CastDoubleToUnsigned(metrics.width+draw_info->stroke_width+
+ 0.5);
+ height=CastDoubleToUnsigned(
+ metrics.height-metrics.underline_position+
draw_info->stroke_width+0.5);
if ((image->columns != 0) && (image->rows != 0))
{
- if ((width >= image->columns) || (height >= image->rows))
+ if ((width > image->columns) && (height > image->rows))
break;
- if ((width < image->columns) && (height < image->rows))
+ if ((width <= image->columns) && (height <= image->rows))
low=draw_info->pointsize;
}
else
- if (((image->columns != 0) && (width >= image->columns)) ||
- ((image->rows != 0) && (height >= image->rows)))
+ if (((image->columns != 0) && (width > image->columns)) ||
+ ((image->rows != 0) && (height > image->rows)))
break;
}
if (status == MagickFalse)
@@ -238,7 +240,7 @@
}
high=draw_info->pointsize;
}
- while((high-low) > 0.5)
+ while ((high-low) > 0.5)
{
draw_info->pointsize=(low+high)/2.0;
(void) FormatLocaleString(geometry,MagickPathExtent,"%+g%+g",
@@ -267,11 +269,7 @@
high=draw_info->pointsize-0.5;
}
if (status != MagickFalse)
- {
- draw_info->pointsize=floor((low+high)/2.0-0.5);
- status=GetMultilineTypeMetrics(image,draw_info,&metrics,exception);
- AdjustTypeMetricBounds(&metrics);
- }
+ draw_info->pointsize=floor((low+high)/2.0-0.5);
}
label=DestroyString(label);
if (status == MagickFalse)
@@ -280,6 +278,11 @@
image=DestroyImageList(image);
return((Image *) NULL);
}
+ /*
+ Draw label.
+ */
+ status=GetMultilineTypeMetrics(image,draw_info,&metrics,exception);
+ AdjustTypeMetricBounds(&metrics);
if (image->columns == 0)
image->columns=(size_t) floor(metrics.width+draw_info->stroke_width+0.5);
if (image->columns == 0)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/mat.c
^
|
@@ -1633,7 +1633,7 @@
image->depth=8;
current_time=GetMagickTime();
- GetMagickUTCtime(¤t_time,&utc_time);
+ GetMagickUTCTime(¤t_time,&utc_time);
(void) memset(MATLAB_HDR,' ',MagickMin(sizeof(MATLAB_HDR),124));
FormatLocaleString(MATLAB_HDR,sizeof(MATLAB_HDR),
"MATLAB 5.0 MAT-file, Platform: %s, Created on: %s %s %2d %2d:%2d:%2d %d",
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/miff.c
^
|
@@ -622,7 +622,7 @@
Get the keyword value.
*/
c=ReadBlobByte(image);
- while ((c != (int) '}') && (c != EOF))
+ while ((c != (int) '{') && (c != (int) '}') && (c != EOF))
{
if ((size_t) (p-options+1) >= length)
{
@@ -639,7 +639,7 @@
if (c == '\\')
{
c=ReadBlobByte(image);
- if (c == (int) '}')
+ if ((c == (int) '{') || (c == (int) '}'))
{
*p++=(char) c;
c=ReadBlobByte(image);
@@ -2408,19 +2408,20 @@
length=strlen(value);
for (i=0; i < (ssize_t) length; i++)
if ((isspace((int) ((unsigned char) value[i])) != 0) ||
- (value[i] == '}'))
+ (value[i] == '{') || (value[i] == '}'))
break;
if ((i == (ssize_t) length) && (i != 0))
(void) WriteBlob(image,length,(const unsigned char *) value);
else
{
(void) WriteBlobByte(image,'{');
- if (strchr(value,'}') == (char *) NULL)
+ if ((strchr(value,'{') == (char *) NULL) &&
+ (strchr(value,'}') == (char *) NULL))
(void) WriteBlob(image,length,(const unsigned char *) value);
else
for (i=0; i < (ssize_t) length; i++)
{
- if (value[i] == (int) '}')
+ if ((value[i] == (int) '{') || (value[i] == (int) '}'))
(void) WriteBlobByte(image,'\\');
(void) WriteBlobByte(image,(unsigned char) value[i]);
}
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/mpc.c
^
|
@@ -307,7 +307,7 @@
Get the keyword value.
*/
c=ReadBlobByte(image);
- while ((c != (int) '}') && (c != EOF))
+ while ((c != (int) '{') && (c != (int) '}') && (c != EOF))
{
if ((size_t) (p-options+1) >= length)
{
@@ -324,7 +324,7 @@
if (c == '\\')
{
c=ReadBlobByte(image);
- if (c == (int) '}')
+ if ((c == (int) '{') || (c == (int) '}'))
{
*p++=(char) c;
c=ReadBlobByte(image);
@@ -1419,12 +1419,13 @@
else
{
(void) WriteBlobByte(image,'{');
- if (strchr(value,'}') == (char *) NULL)
+ if ((strchr(value,'{') == (char *) NULL) &&
+ (strchr(value,'}') == (char *) NULL))
(void) WriteBlob(image,length,(const unsigned char *) value);
else
for (i=0; i < (ssize_t) length; i++)
{
- if (value[i] == (int) '}')
+ if ((value[i] == (int) '{') || (value[i] == (int) '}'))
(void) WriteBlobByte(image,'\\');
(void) WriteBlobByte(image,(unsigned char) value[i]);
}
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/pdf.c
^
|
@@ -3226,7 +3226,7 @@
WritePDFValue(image,"Subject",GetPDFSubject(image_info),is_pdfa);
WritePDFValue(image,"Keywords",GetPDFKeywords(image_info),is_pdfa);
seconds=GetPdfCreationDate(image_info,image);
- GetMagickUTCtime(&seconds,&utc_time);
+ GetMagickUTCTime(&seconds,&utc_time);
(void) FormatLocaleString(temp,MagickPathExtent,"D:%04d%02d%02d%02d%02d%02d",
utc_time.tm_year+1900,utc_time.tm_mon+1,utc_time.tm_mday,
utc_time.tm_hour,utc_time.tm_min,utc_time.tm_sec);
@@ -3234,7 +3234,7 @@
temp);
(void) WriteBlobString(image,buffer);
seconds=GetPdfModDate(image_info,image);
- GetMagickUTCtime(&seconds,&utc_time);
+ GetMagickUTCTime(&seconds,&utc_time);
(void) FormatLocaleString(temp,MagickPathExtent,"D:%04d%02d%02d%02d%02d%02d",
utc_time.tm_year+1900,utc_time.tm_mon+1,utc_time.tm_mday,
utc_time.tm_hour,utc_time.tm_min,utc_time.tm_sec);
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/png.c
^
|
@@ -1791,8 +1791,6 @@
(void) FormatLocaleString(key,MagickPathExtent,"%s",(const char *)
GetStringInfoDatum(profile));
offset=(ssize_t) strlen(key)+1;
- (void) FormatLocaleString(key,MagickPathExtent,"png:%s",(const char *)
- GetStringInfoDatum(profile));
if (((MagickOffsetType) size-offset) < 1)
{
profile=DestroyStringInfo(profile);
@@ -7913,6 +7911,69 @@
}
#endif
+static void Magick_png_set_text(png_struct *ping,png_info *ping_info,
+ MngWriteInfo *mng_info, const ImageInfo *image_info,const char* key,
+ const char *value)
+{
+ const char
+ *c;
+
+ MagickBooleanType
+ write_itxt=MagickFalse;
+
+ int
+ compresion_none=PNG_TEXT_COMPRESSION_NONE,
+ compresion_zTXt=PNG_TEXT_COMPRESSION_zTXt;
+
+ png_textp
+ text;
+
+ size_t
+ length;
+
+ /*
+ Check if the string contains non-Latin1 characters.
+ */
+ c=value;
+ while(*c != '\0')
+ {
+ if (((const unsigned char) *c) > 127) {
+ write_itxt=MagickTrue;
+ compresion_none=PNG_ITXT_COMPRESSION_NONE;
+ compresion_zTXt=PNG_ITXT_COMPRESSION_zTXt;
+ break;
+ }
+ c++;
+ }
+#if PNG_LIBPNG_VER >= 10400
+ text=(png_textp) png_malloc(ping,(png_alloc_size_t) sizeof(png_text));
+#else
+ text=(png_textp) png_malloc(ping,(png_size_t) sizeof(png_text));
+#endif
+ if (text == (png_textp) NULL)
+ return;
+ (void) memset(text,0,sizeof(png_text));
+ text[0].key=(char *) key;
+ text[0].text=(char *) value;
+ length=strlen(value);
+ if (write_itxt == MagickFalse)
+ text[0].text_length=length;
+ else
+ text[0].itxt_length=length;
+ if (mng_info->exclude_tEXt != MagickFalse)
+ text[0].compression=compresion_zTXt;
+ else
+ if (mng_info->exclude_zTXt != MagickFalse)
+ text[0].compression=compresion_none;
+ else
+ text[0].compression=
+ image_info->compression == NoCompression ||
+ (image_info->compression == UndefinedCompression &&
+ (length < 128)) ? compresion_none : compresion_zTXt;
+ png_set_text(ping,ping_info,text,1);
+ png_free(ping,text);
+}
+
/* Write one PNG image */
static MagickBooleanType WriteOnePNGImage(MngWriteInfo *mng_info,
const ImageInfo *IMimage_info,Image *IMimage,ExceptionInfo *exception)
@@ -11175,9 +11236,6 @@
ResetImagePropertyIterator(image);
while ((property=GetNextImageProperty(image)) != (const char *) NULL)
{
- png_textp
- text;
-
/* Don't write any "png:" or "jpeg:" properties; those are just for
* "identify" or for passing through to another JPEG
*/
@@ -11202,36 +11260,7 @@
value=GetImageProperty(image,property,exception);
if (value == (const char *) NULL)
continue;
-#if PNG_LIBPNG_VER >= 10400
- text=(png_textp) png_malloc(ping,
- (png_alloc_size_t) sizeof(png_text));
-#else
- text=(png_textp) png_malloc(ping,(png_size_t) sizeof(png_text));
-#endif
- text[0].key=(char *) property;
- text[0].text=(char *) value;
- text[0].text_length=strlen(value);
- if (mng_info->exclude_tEXt != MagickFalse)
- text[0].compression=PNG_TEXT_COMPRESSION_zTXt;
- else if (mng_info->exclude_zTXt != MagickFalse)
- text[0].compression=PNG_TEXT_COMPRESSION_NONE;
- else
- {
- text[0].compression=image_info->compression == NoCompression ||
- (image_info->compression == UndefinedCompression &&
- text[0].text_length < 128) ? PNG_TEXT_COMPRESSION_NONE :
- PNG_TEXT_COMPRESSION_zTXt ;
- }
- if (logging != MagickFalse)
- {
- (void) LogMagickEvent(CoderEvent,GetMagickModule(),
- " Setting up text chunk");
-
- (void) LogMagickEvent(CoderEvent,GetMagickModule(),
- " keyword: '%s'",text[0].key);
- }
- png_set_text(ping,ping_info,text,1);
- png_free(ping,text);
+ Magick_png_set_text(ping,ping_info,mng_info,image_info,property,value);
}
}
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/psd.c
^
|
@@ -1523,7 +1523,7 @@
return(status);
}
-static MagickBooleanType GetPixelChannelFromPsdIndex(const PSDInfo *psd_info,
+static MagickBooleanType GetPixelChannelFromPSDIndex(const PSDInfo *psd_info,
ssize_t index,PixelChannel *channel)
{
*channel=RedPixelChannel;
@@ -1569,7 +1569,7 @@
return(MagickTrue);
}
-static void SetPsdMetaChannels(Image *image,const PSDInfo *psd_info,
+static void SetPSDMetaChannels(Image *image,const PSDInfo *psd_info,
const unsigned short channels,ExceptionInfo *exception)
{
ssize_t
@@ -1618,10 +1618,13 @@
(void) FormatLocaleString(message,MagickPathExtent,"%.20g",(double)
layer_info->opacity);
(void) SetImageArtifact(layer_info->image,"psd:layer.opacity",message);
+ (void) FormatLocaleString(message,MagickPathExtent,"%.20g",(double)
+ layer_info->visible);
+ (void) SetImageArtifact(layer_info->image,"psd:layer.visible",message);
(void) SetImageProperty(layer_info->image,"label",(char *) layer_info->name,
exception);
- SetPsdMetaChannels(layer_info->image,psd_info,layer_info->channels,exception);
+ SetPSDMetaChannels(layer_info->image,psd_info,layer_info->channels,exception);
status=MagickTrue;
for (j=0; j < (ssize_t) layer_info->channels; j++)
{
@@ -1670,6 +1673,13 @@
return(status);
}
+static MagickBooleanType IsEmptyPSDLayer(LayerInfo *layer_info)
+{
+ if ((layer_info->page.width == 0) || (layer_info->page.height == 0))
+ return(MagickTrue);
+ return(MagickFalse);
+}
+
static MagickBooleanType CheckPSDChannels(const Image *image,
const PSDInfo *psd_info,LayerInfo *layer_info)
{
@@ -1682,6 +1692,8 @@
ssize_t
i;
+ if (IsEmptyPSDLayer(layer_info) != MagickFalse)
+ return(MagickTrue);
if (layer_info->channels < psd_info->min_channels)
return(MagickFalse);
channel_type=RedChannel;
@@ -2006,7 +2018,7 @@
layer_info[i].page.width,(double) layer_info[i].channels);
for (j=0; j < (ssize_t) layer_info[i].channels; j++)
{
- layer_info[i].channel_info[j].supported=GetPixelChannelFromPsdIndex(
+ layer_info[i].channel_info[j].supported=GetPixelChannelFromPSDIndex(
psd_info,(ssize_t) ReadBlobSignedShort(image),
&layer_info[i].channel_info[j].channel);
layer_info[i].channel_info[j].size=(size_t) GetPSDSize(psd_info,
@@ -2167,7 +2179,7 @@
for (i=0; i < number_layers; i++)
{
- if ((layer_info[i].page.width == 0) || (layer_info[i].page.height == 0))
+ if (IsEmptyPSDLayer(&layer_info[i]) != MagickFalse)
{
if (image->debug != MagickFalse)
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
@@ -2303,14 +2315,14 @@
image->filename);
}
- SetPsdMetaChannels(image,psd_info,psd_info->channels,exception);
+ SetPSDMetaChannels(image,psd_info,psd_info->channels,exception);
status=MagickTrue;
for (i=0; i < (ssize_t) psd_info->channels; i++)
{
PixelChannel
channel;
- status=GetPixelChannelFromPsdIndex(psd_info,i,&channel);
+ status=GetPixelChannelFromPSDIndex(psd_info,i,&channel);
if (status == MagickFalse)
{
(void) ThrowMagickException(exception,GetMagickModule(),
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/svg.c
^
|
@@ -435,21 +435,27 @@
rsvg_handle_set_base_uri(svg_handle,image_info->filename);
if ((fabs(image->resolution.x) > MagickEpsilon) &&
(fabs(image->resolution.y) > MagickEpsilon))
- rsvg_handle_set_dpi_x_y(svg_handle,image->resolution.x,
- image->resolution.y);
+ rsvg_handle_set_dpi_x_y(svg_handle,image->resolution.x,image->resolution.y);
while ((n=ReadBlob(image,MagickMaxBufferExtent-1,buffer)) != 0)
{
buffer[n]='\0';
error=(GError *) NULL;
(void) rsvg_handle_write(svg_handle,buffer,(gsize) n,&error);
if (error != (GError *) NULL)
- g_error_free(error);
+ {
+ g_error_free(error);
+ break;
+ }
}
buffer=(unsigned char *) RelinquishMagickMemory(buffer);
error=(GError *) NULL;
rsvg_handle_close(svg_handle,&error);
if (error != (GError *) NULL)
- g_error_free(error);
+ {
+ g_error_free(error);
+ g_object_unref(svg_handle);
+ ThrowReaderException(CorruptImageError,"UnableToReadImageData");
+ }
#if defined(MAGICKCORE_CAIRO_DELEGATE)
apply_density=MagickTrue;
rsvg_handle_get_dimensions(svg_handle,&dimension_info);
@@ -556,8 +562,7 @@
cairo_surface_destroy(cairo_surface);
pixel_info=RelinquishVirtualMemory(pixel_info);
g_object_unref(svg_handle);
- ThrowReaderException(ResourceLimitError,
- "MemoryAllocationFailed");
+ ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
}
cairo_image=cairo_create(cairo_surface);
cairo_set_operator(cairo_image,CAIRO_OPERATOR_CLEAR);
@@ -1895,7 +1900,7 @@
(void) FormatLocaleFile(svg_info->file,"fill-opacity 1\n");
(void) FormatLocaleFile(svg_info->file,"stroke \"none\"\n");
(void) FormatLocaleFile(svg_info->file,"stroke-width 1\n");
- (void) FormatLocaleFile(svg_info->file,"stroke-opacity 1\n");
+ (void) FormatLocaleFile(svg_info->file,"stroke-opacity 0\n");
(void) FormatLocaleFile(svg_info->file,"fill-rule nonzero\n");
break;
}
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/tiff.c
^
|
@@ -1840,11 +1840,11 @@
if (status == MagickFalse)
ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
}
- }
- if (image->number_meta_channels != 0)
- {
- quantum_type=MultispectralQuantum;
- (void) SetQuantumPad(image,quantum_info,0);
+ if (image->number_meta_channels != 0)
+ {
+ quantum_type=MultispectralQuantum;
+ (void) SetQuantumPad(image,quantum_info,0);
+ }
}
switch (method)
{
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/url.c
^
|
@@ -18,7 +18,7 @@
% March 2000 %
% %
% %
-% Copyright @ 2000 ImageMagick Studio LLC, a non-profit organization %
+% Copyright @ 1999 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/video.c
^
|
@@ -327,69 +327,81 @@
entry->encoder=(EncodeImageHandler *) WriteVIDEOImage;
entry->magick=(IsImageFormatHandler *) IsPNG;
entry->flags^=CoderBlobSupportFlag;
+ entry->flags|=CoderDecoderSeekableStreamFlag;
(void) RegisterMagickInfo(entry);
entry=AcquireMagickInfo("VIDEO","AVI","Microsoft Audio/Visual Interleaved");
entry->decoder=(DecodeImageHandler *) ReadVIDEOImage;
entry->flags^=CoderBlobSupportFlag;
+ entry->flags|=CoderDecoderSeekableStreamFlag;
(void) RegisterMagickInfo(entry);
entry=AcquireMagickInfo("VIDEO","FLV","Flash Video Stream");
entry->decoder=(DecodeImageHandler *) ReadVIDEOImage;
entry->encoder=(EncodeImageHandler *) WriteVIDEOImage;
entry->magick=(IsImageFormatHandler *) IsVIDEO;
entry->flags^=CoderBlobSupportFlag;
+ entry->flags|=CoderDecoderSeekableStreamFlag;
(void) RegisterMagickInfo(entry);
entry=AcquireMagickInfo("VIDEO","MKV","Multimedia Container");
entry->decoder=(DecodeImageHandler *) ReadVIDEOImage;
entry->encoder=(EncodeImageHandler *) WriteVIDEOImage;
entry->magick=(IsImageFormatHandler *) IsVIDEO;
entry->flags^=CoderBlobSupportFlag;
+ entry->flags|=CoderDecoderSeekableStreamFlag;
(void) RegisterMagickInfo(entry);
entry=AcquireMagickInfo("VIDEO","MOV","MPEG Video Stream");
entry->decoder=(DecodeImageHandler *) ReadVIDEOImage;
entry->encoder=(EncodeImageHandler *) WriteVIDEOImage;
entry->magick=(IsImageFormatHandler *) IsVIDEO;
entry->flags^=CoderBlobSupportFlag;
+ entry->flags|=CoderDecoderSeekableStreamFlag;
(void) RegisterMagickInfo(entry);
entry=AcquireMagickInfo("VIDEO","MPEG","MPEG Video Stream");
entry->decoder=(DecodeImageHandler *) ReadVIDEOImage;
entry->encoder=(EncodeImageHandler *) WriteVIDEOImage;
entry->magick=(IsImageFormatHandler *) IsVIDEO;
entry->flags^=CoderBlobSupportFlag;
+ entry->flags|=CoderDecoderSeekableStreamFlag;
(void) RegisterMagickInfo(entry);
entry=AcquireMagickInfo("VIDEO","MPG","MPEG Video Stream");
entry->decoder=(DecodeImageHandler *) ReadVIDEOImage;
entry->encoder=(EncodeImageHandler *) WriteVIDEOImage;
entry->magick=(IsImageFormatHandler *) IsVIDEO;
entry->flags^=CoderBlobSupportFlag;
+ entry->flags|=CoderDecoderSeekableStreamFlag;
(void) RegisterMagickInfo(entry);
entry=AcquireMagickInfo("VIDEO","MP4","VIDEO-4 Video Stream");
entry->decoder=(DecodeImageHandler *) ReadVIDEOImage;
entry->encoder=(EncodeImageHandler *) WriteVIDEOImage;
entry->magick=(IsImageFormatHandler *) IsVIDEO;
entry->flags^=CoderBlobSupportFlag;
+ entry->flags|=CoderDecoderSeekableStreamFlag;
(void) RegisterMagickInfo(entry);
entry=AcquireMagickInfo("VIDEO","M2V","MPEG Video Stream");
entry->decoder=(DecodeImageHandler *) ReadVIDEOImage;
entry->encoder=(EncodeImageHandler *) WriteVIDEOImage;
entry->magick=(IsImageFormatHandler *) IsVIDEO;
entry->flags^=CoderBlobSupportFlag;
+ entry->flags|=CoderDecoderSeekableStreamFlag;
(void) RegisterMagickInfo(entry);
entry=AcquireMagickInfo("VIDEO","M4V","Raw VIDEO-4 Video");
entry->decoder=(DecodeImageHandler *) ReadVIDEOImage;
entry->encoder=(EncodeImageHandler *) WriteVIDEOImage;
entry->magick=(IsImageFormatHandler *) IsVIDEO;
entry->flags^=CoderBlobSupportFlag;
+ entry->flags|=CoderDecoderSeekableStreamFlag;
(void) RegisterMagickInfo(entry);
entry=AcquireMagickInfo("VIDEO","WEBM","Open Web Media");
entry->decoder=(DecodeImageHandler *) ReadVIDEOImage;
entry->encoder=(EncodeImageHandler *) WriteVIDEOImage;
entry->flags^=CoderBlobSupportFlag;
+ entry->flags|=CoderDecoderSeekableStreamFlag;
(void) RegisterMagickInfo(entry);
entry=AcquireMagickInfo("VIDEO","WMV","Windows Media Video");
entry->decoder=(DecodeImageHandler *) ReadVIDEOImage;
entry->encoder=(EncodeImageHandler *) WriteVIDEOImage;
entry->magick=(IsImageFormatHandler *) IsVIDEO;
entry->flags^=CoderBlobSupportFlag;
+ entry->flags|=CoderDecoderSeekableStreamFlag;
(void) RegisterMagickInfo(entry);
return(MagickImageCoderSignature);
}
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/coders/webp.c
^
|
@@ -163,6 +163,19 @@
return(value);
}
+static inline void WriteWebPLSBWord(unsigned char *magick_restrict data,
+ const size_t value)
+{
+ unsigned char
+ *p;
+
+ p=data;
+ *(p++)=(unsigned char) value;
+ *(p++)=(unsigned char) (value >> 8);
+ *(p++)=(unsigned char) (value >> 16);
+ *(p++)=(unsigned char) (value >> 24);
+}
+
static MagickBooleanType IsWEBPImageLossless(const unsigned char *stream,
const size_t length)
{
@@ -514,6 +527,7 @@
status;
size_t
+ blob_size,
length;
ssize_t
@@ -559,8 +573,17 @@
length=(size_t) (ReadWebPLSBWord(header+4)+8);
if (length < 12)
ThrowWEBPException(CorruptImageError,"CorruptImage");
- if ((MagickSizeType) length > GetBlobSize(image))
- ThrowWEBPException(CorruptImageError,"InsufficientImageDataInFile");
+ blob_size=(size_t) GetBlobSize(image);
+ if (length > blob_size)
+ {
+ size_t
+ delta=length-blob_size;
+
+ if (delta != 12 && delta != (12 + 8))
+ ThrowWEBPException(CorruptImageError,"InsufficientImageDataInFile");
+ length-=delta;
+ WriteWebPLSBWord(header+4,length-8);
+ }
stream=(unsigned char *) AcquireQuantumMemory(length,sizeof(*stream));
if (stream == (unsigned char *) NULL)
ThrowWEBPException(ResourceLimitError,"MemoryAllocationFailed");
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/config/delegates.xml.in
^
|
@@ -63,7 +63,7 @@
<delegate decode="png" encode="bpg" command=""@BPGEncodeDelegate@" -b 12 -q "%~" -o "%o" "%i""/>
<delegate decode="blender" command=""@BlenderDecodeDelegate@" -b "%i" -F PNG -o "%o""\n"@ConvertDelegate@" convert -concatenate "%o*.png" "%o""/>
<delegate decode="browse" stealth="True" spawn="True" command=""@BrowseDelegate@" https://imagemagick.org/; @RMDelegate@ "%i""/>
- <delegate decode="https:decode" command=""@WWWDecodeDelegate@" -s -k -L -o "%u.dat" "https:%M""/>
+ <delegate decode="https:decode" command=""@WWWDecodeDelegate@" -s -L -o "%u.dat" "https:%M""/>
<delegate decode="doc" command=""@DOCDecodeDelegate@" --convert-to pdf -outdir `dirname "%i"` "%i" 2> "%u"; @MVDelegate@ "%i.pdf" "%o""/>
<delegate decode="docx" command=""@DOCDecodeDelegate@" --convert-to pdf -outdir `dirname "%i"` "%i" 2> "%u"; @MVDelegate@ "%i.pdf" "%o""/>
<delegate decode="dng:decode" command=""@DNGDecodeDelegate@" --silent --create-id=also --out-type=png --out-depth=16 "--output=%u.png" "%i""/>
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/config/mime.xml
^
|
@@ -763,6 +763,8 @@
<mime type="image/x-adobe-dng" acronym="DNG" description="Digital Negative" priority="100" pattern="*.dng" />
<mime type="image/x-canon-crw" description="Canon RaW" data-type="string" offset="0" magic="II\x1a\x00\x00\x00HEAPCCDR" priority="50" />
<mime type="image/x-canon-crw" acronym="CRW" description="Canon RaW" priority="100" pattern="*.crw" />
+ <mime type="image/x-canon-cr2" description="Canon Raw 2" data-type="string" offset="0" magic="MM\x00\x2a\x00\x10\x00\x00RC\x02" priority="50" />
+ <mime type="image/x-canon-cr2" description="Canon Raw 2" data-type="string" offset="0" magic="II\x2a\x00\x10\x00\x00\x00CR\x02" priority="50" />
<mime type="image/x-canon-cr2" acronym="CR2" description="Canon Raw 2" priority="100" pattern="*.cr2" />
<mime type="image/x-canon-cr3" description="Canon Raw 3" data-type="string" offset="4" magic="ftypcrx " priority="50" />
<mime type="image/x-canon-cr3" acronym="CR3" description="Canon Raw 3" priority="100" pattern="*.cr3" />
@@ -777,7 +779,9 @@
<mime type="image/x-olympus-orf" description="Olympus Raw Format" data-type="string" offset="0" magic="IIRO\x08\x00\x00\x00" priority="50" />
<mime type="image/x-olympus-orf" acronym="ORF" description="Olympus Raw Format" priority="100" pattern="*.orf" />
<mime type="image/x-panasonic-raw" description="Panasonic raw image" data-type="string" offset="0" magic="IIU\x00\x08\x00\x00\x00" priority="50" />
- <mime type="image/x-panasonic-raw" description="Panasonic raw image" priority="100" pattern="*.raw" />
+ <mime type="image/x-panasonic-raw" acronym="RAW" description="Panasonic raw image" priority="100" pattern="*.raw" />
+ <mime type="image/x-panasonic-rw2" description="Panasonic raw2 image" data-type="string" offset="0" magic="IIU\x00\x18\x00\x00\x00" priority="50" />
+ <mime type="image/x-panasonic-rw2" acronym="RW2" description="Panasonic raw2 image" priority="100" pattern="*.rw2" />
<mime type="image/x-pentax-pef" acronym="PEF" description="Pentax Electronic Format" priority="100" pattern="*.pef" />
<mime type="image/x-sigma-x3f" description="X3 Foveon" data-type="string" offset="0" magic="FOVb" priority="50" />
<mime type="image/x-sigma-x3f" acronym="X3F" description="X3 Foveon" priority="100" pattern="*.x3f" />
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/configure
^
|
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for ImageMagick 7.1.1-23.
+# Generated by GNU Autoconf 2.71 for ImageMagick 7.1.1-28.
#
# Report bugs to <https://github.com/ImageMagick/ImageMagick/issues>.
#
@@ -621,8 +621,8 @@
# Identity of this package.
PACKAGE_NAME='ImageMagick'
PACKAGE_TARNAME='ImageMagick'
-PACKAGE_VERSION='7.1.1-23'
-PACKAGE_STRING='ImageMagick 7.1.1-23'
+PACKAGE_VERSION='7.1.1-28'
+PACKAGE_STRING='ImageMagick 7.1.1-28'
PACKAGE_BUGREPORT='https://github.com/ImageMagick/ImageMagick/issues'
PACKAGE_URL='https://imagemagick.org'
@@ -1915,7 +1915,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures ImageMagick 7.1.1-23 to adapt to many kinds of systems.
+\`configure' configures ImageMagick 7.1.1-28 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1991,7 +1991,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of ImageMagick 7.1.1-23:";;
+ short | recursive ) echo "Configuration of ImageMagick 7.1.1-28:";;
esac
cat <<\_ACEOF
@@ -2312,7 +2312,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-ImageMagick configure 7.1.1-23
+ImageMagick configure 7.1.1-28
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -3263,7 +3263,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by ImageMagick $as_me 7.1.1-23, which was
+It was created by ImageMagick $as_me 7.1.1-28, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -4879,7 +4879,7 @@
# Define the identity of the package.
PACKAGE='ImageMagick'
- VERSION='7.1.1-23'
+ VERSION='7.1.1-28'
# Some tools Automake needs.
@@ -5183,11 +5183,11 @@
MAGICK_MICRO_VERSION=1
-MAGICK_PATCHLEVEL_VERSION=23
+MAGICK_PATCHLEVEL_VERSION=28
-MAGICK_VERSION=7.1.1-23
+MAGICK_VERSION=7.1.1-28
-MAGICK_GIT_REVISION=b135bacc6:20231210
+MAGICK_GIT_REVISION=b20675898:20240211
# Substitute library versioning
@@ -5209,19 +5209,19 @@
PACKAGE_BASE_VERSION=7.1.1
-PACKAGE_PATCHLEVEL_VERSION=23
+PACKAGE_PATCHLEVEL_VERSION=28
-if test "y" = 'y'; then
- PACKAGE_VERSION_ADDENDUM='-23 (Beta)'
+if test "n" = 'y'; then
+ PACKAGE_VERSION_ADDENDUM='-28 (Beta)'
else
- PACKAGE_VERSION_ADDENDUM=-23
+ PACKAGE_VERSION_ADDENDUM=-28
fi
PACKAGE_LIB_VERSION=0x711
-PACKAGE_LIB_VERSION_NUMBER=7,1,1,23
+PACKAGE_LIB_VERSION_NUMBER=7,1,1,28
-PACKAGE_RELEASE_DATE=2023-12-10
+PACKAGE_RELEASE_DATE=2024-02-11
# Ensure that make can run correctly
@@ -10644,7 +10644,7 @@
fi
-# The presence of a feature test macro requesting reentrant function
+# The presence of a feature test macro requesting re-entrant function
# definitions is, on some systems, a strong hint that pthreads support is
# correctly enabled
@@ -11905,7 +11905,8 @@
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <unistd.h>
- main () {
+ #include <stdlib.h>
+ int main () {
exit(!(sizeof(off_t) == 8));
}
int
@@ -11932,6 +11933,9 @@
;;
*)
+ if test "$ac_cv_sys_file_offset_bits" = ''; then
+ ac_cv_sys_file_offset_bits=64;
+ fi
LFS_CPPFLAGS="$LFS_CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
;;
esac
@@ -23784,53 +23788,6 @@
fi
-# Does gcc required -traditional?
-if test $ac_cv_c_compiler_gnu = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5
-printf %s "checking whether $CC needs -traditional... " >&6; }
-if test ${ac_cv_prog_gcc_traditional+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_pattern="Autoconf.*'x'"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sgtty.h>
-Autoconf TIOCGETP
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "$ac_pattern" >/dev/null 2>&1
-then :
- ac_cv_prog_gcc_traditional=yes
-else $as_nop
- ac_cv_prog_gcc_traditional=no
-fi
-rm -rf conftest*
-
-
- if test $ac_cv_prog_gcc_traditional = no; then
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <termio.h>
-Autoconf TCGETA
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "$ac_pattern" >/dev/null 2>&1
-then :
- ac_cv_prog_gcc_traditional=yes
-fi
-rm -rf conftest*
-
- fi
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gcc_traditional" >&5
-printf "%s\n" "$ac_cv_prog_gcc_traditional" >&6; }
- if test $ac_cv_prog_gcc_traditional = yes; then
- CC="$CC -traditional"
- fi
-fi
-
-
########
#
# Set defines required to build DLLs and modules using MinGW
@@ -34925,9 +34882,9 @@
DVIDecodeDelegateDefault='dvips'
EditorDelegateDefault='xterm'
ConvertDelegateDefault=`echo magick | sed ${configure_transform_name}`
-DisplayDelegateDefault=`echo magick display | sed ${configure_transform_name}`
+DisplayDelegateDefault=`echo magick | sed ${configure_transform_name}`
Fig2devDelegateDefault='fig2dev'
-MogrifyDelegateDefault=`echo magick mogrify | sed ${configure_transform_name}`
+MogrifyDelegateDefault=`echo magick | sed ${configure_transform_name}`
HPGLDecodeDelegateDefault='hp2xx'
HTMLDecodeDelegateDefault='html2ps'
ILBMDecodeDelegateDefault='ilbmtoppm'
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/configure.ac
^
|
@@ -503,7 +503,8 @@
unknown)
AC_MSG_CHECKING([for native large file support])
AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>
- main () {
+ #include <stdlib.h>
+ int main () {
exit(!(sizeof(off_t) == 8));
}])],
[ac_cv_sys_file_offset_bits=64; AC_DEFINE(_FILE_OFFSET_BITS,64)
@@ -511,6 +512,9 @@
[AC_MSG_RESULT([no])])
;;
*)
+ if test "$ac_cv_sys_file_offset_bits" = ''; then
+ ac_cv_sys_file_offset_bits=64;
+ fi
LFS_CPPFLAGS="$LFS_CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
;;
esac
@@ -929,9 +933,6 @@
fi
AC_SUBST([LIBSTDCLDFLAGS])
-# Does gcc required -traditional?
-AC_PROG_GCC_TRADITIONAL
-
########
#
# Set defines required to build DLLs and modules using MinGW
@@ -3242,9 +3243,9 @@
DVIDecodeDelegateDefault='dvips'
EditorDelegateDefault='xterm'
ConvertDelegateDefault=`echo magick | sed ${configure_transform_name}`
-DisplayDelegateDefault=`echo magick display | sed ${configure_transform_name}`
+DisplayDelegateDefault=`echo magick | sed ${configure_transform_name}`
Fig2devDelegateDefault='fig2dev'
-MogrifyDelegateDefault=`echo magick mogrify | sed ${configure_transform_name}`
+MogrifyDelegateDefault=`echo magick | sed ${configure_transform_name}`
HPGLDecodeDelegateDefault='hp2xx'
HTMLDecodeDelegateDefault='html2ps'
ILBMDecodeDelegateDefault='ilbmtoppm'
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/m4/Makefile.am
^
|
@@ -15,7 +15,6 @@
# Makefile for building ImageMagick m4 macros.
M4_EXTRA_DIST = \
- ac_func_fseeko.m4 \
ax_append_flag.m4 \
ax_c___attribute__.m4 \
ax_cflags_warn_all.m4 \
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/m4/ax_pthread.m4
^
|
@@ -244,7 +244,7 @@
[ax_pthread_flags="-pthread,-lpthread -pthread"])
-# The presence of a feature test macro requesting reentrant function
+# The presence of a feature test macro requesting re-entrant function
# definitions is, on some systems, a strong hint that pthreads support is
# correctly enabled
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/m4/version.m4
^
|
@@ -27,7 +27,7 @@
m4_define([magick_major_version], [7])
m4_define([magick_minor_version], [1])
m4_define([magick_micro_version], [1])
-m4_define([magick_patchlevel_version], [23])
+m4_define([magick_patchlevel_version], [28])
m4_define([magick_is_beta], [n])
m4_define([magick_bugreport],
[https://github.com/ImageMagick/ImageMagick/issues])
|
[-]
[+]
|
Added |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/oss-fuzz/build.sh
^
|
@@ -0,0 +1,23 @@
+#!/bin/bash -eu
+
+MAGICK_COMPILER=$CXX
+MAGICK_COMPILER_FLAGS=$CXXFLAGS
+MAGICK_INCLUDE="$WORK/include/ImageMagick-7"
+MAGICK_SRC="$SRC/imagemagick/oss-fuzz"
+MAGICK_LIBS_NO_FUZZ="$WORK/lib/libMagick++-7.Q16HDRI.a $WORK/lib/libMagickWand-7.Q16HDRI.a $WORK/lib/libMagickCore-7.Q16HDRI.a $WORK/lib/libpng.a $WORK/lib/libtiff.a $WORK/lib/libheif.a $WORK/lib/libde265.a $WORK/lib/libopenjp2.a $WORK/lib/libwebp.a $WORK/lib/libwebpmux.a $WORK/lib/libwebpdemux.a $WORK/lib/libsharpyuv.a $WORK/lib/libhwy.a $WORK/lib/libbrotlicommon.a $WORK/lib/libbrotlidec.a $WORK/lib/libbrotlienc.a $WORK/lib/libjxl_threads.a $WORK/lib/libjxl_cms.a $WORK/lib/libjxl.a $WORK/lib/libturbojpeg.a $WORK/lib/libjpeg.a $WORK/lib/libfreetype.a $WORK/lib/libraw.a $WORK/lib/liblzma.a $WORK/lib/liblcms2.a $WORK/lib/libdeflate.a $WORK/lib/libz.a"
+MAGICK_LIBS="$LIB_FUZZING_ENGINE $MAGICK_LIBS_NO_FUZZ"
+MAGICK_OUTPUT=$OUT
+MAGICK_FAST_BUILD=0
+
+. $MAGICK_SRC/build_dependencies.sh
+. $MAGICK_SRC/build_imagemagick.sh
+. $MAGICK_SRC/build_fuzzers.sh
+
+mkdir afl_testcases
+(cd afl_testcases; tar xvf "$SRC/afl_testcases.tgz")
+for format in gif jpg png bmp ico webp tif; do
+ mkdir $format
+ find afl_testcases -type f -name '*.'$format -exec mv -n {} $format/ \;
+ zip -rj $format.zip $format/
+ cp $format.zip "$OUT/encoder_${format}_fuzzer_seed_corpus.zip"
+done
|
[-]
[+]
|
Added |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/oss-fuzz/build_dependencies.sh
^
|
@@ -0,0 +1,106 @@
+#!/bin/bash -eu
+
+# build zlib
+pushd "$SRC/zlib"
+./configure --static --prefix="$WORK"
+make -j$(nproc) CFLAGS="$CFLAGS -fPIC"
+make install
+popd
+
+# build deflate
+pushd "$SRC/libdeflate"
+cmake . -DCMAKE_INSTALL_PREFIX=$WORK -DLIBDEFLATE_BUILD_SHARED_LIB=off -DLIBDEFLATE_BUILD_GZIP=off
+make -j$(nproc)
+make install
+popd
+
+# Build xz
+pushd "$SRC/xz"
+./autogen.sh --no-po4a --no-doxygen
+./configure --disable-xz --disable-xzdec --disable-lzmadec --disable-lzmainfo --disable-lzma-links --disable-ifunc --disable-scripts --disable-doc --disable-shared --with-pic=yes --prefix="$WORK"
+make -j$(nproc)
+make install
+popd
+
+# Build png
+pushd "$SRC/libpng"
+cmake . -DCMAKE_INSTALL_PREFIX=$WORK -DPNG_SHARED=off
+make -j$(nproc)
+make install
+popd
+
+# Build libjpeg-turbo
+pushd "$SRC/libjpeg-turbo"
+CFLAGS="$CFLAGS -fPIC" cmake . -DCMAKE_INSTALL_PREFIX=$WORK -DENABLE_STATIC=on -DENABLE_SHARED=off
+make -j$(nproc)
+make install
+popd
+
+# Build libtiff
+pushd "$SRC/libtiff"
+autoreconf -fiv
+./configure --disable-shared --prefix="$WORK" CFLAGS="$CFLAGS -I$WORK/include" LIBS="-L$WORK/lib"
+make -j$(nproc)
+make install
+popd
+
+# Build liblcms2
+pushd "$SRC/Little-CMS"
+autoreconf -fiv
+./configure --disable-shared --prefix="$WORK"
+make -j$(nproc)
+make install
+popd
+
+# build libraw
+pushd "$SRC/libraw"
+autoreconf -fiv
+./configure --prefix="$WORK" --disable-shared --with-pic=yes --disable-examples PKG_CONFIG_PATH="$WORK/lib/pkgconfig" CXXFLAGS="$CXXFLAGS -DLIBRAW_USE_CALLOC_INSTEAD_OF_MALLOC=on"
+make -j$(nproc)
+make install
+popd
+
+# Build freetype2
+pushd "$SRC/freetype"
+./autogen.sh
+./configure --prefix="$WORK" --disable-shared PKG_CONFIG_PATH="$WORK/lib/pkgconfig"
+make -j$(nproc)
+make install
+popd
+
+# Build libde265
+pushd "$SRC/libde265"
+./autogen.sh
+./configure --disable-shared --prefix="$WORK"
+make -j$(nproc)
+make install
+popd
+
+# Build libheif
+pushd "$SRC/libheif"
+cmake . -DCMAKE_INSTALL_PREFIX=$WORK -DBUILD_SHARED_LIBS=off -DBUILD_TESTING=off -DWITH_EXAMPLES=off -DENABLE_PLUGIN_LOADING=off -DWITH_JPEG_DECODER=off -DWITH_JPEG_ENCODER=off -DCMAKE_BUILD_TYPE=Release
+make -j$(nproc)
+make install
+popd
+
+# Build webp
+pushd "$SRC/libwebp"
+./autogen.sh
+./configure --disable-shared --disable-png --disable-jpeg --disable-tiff --prefix="$WORK"
+make -j$(nproc)
+make install
+popd
+
+# Build openjpg
+pushd "$SRC/openjpeg"
+cmake . -DCMAKE_INSTALL_PREFIX=$WORK -DBUILD_SHARED_LIBS=off -DBUILD_CODEC=off -DCMAKE_BUILD_TYPE=Release
+make -j$(nproc)
+make install
+popd
+
+# Build libjxl
+pushd "$SRC/libjxl"
+cmake . -DCMAKE_INSTALL_PREFIX=$WORK -DBUILD_SHARED_LIBS=off -DBUILD_TESTING=false -DJPEGXL_ENABLE_TOOLS=false -DJPEGXL_ENABLE_SKCMS=false -DJPEGXL_ENABLE_DOXYGEN=false -DJPEGXL_ENABLE_MANPAGES=false -DJPEGXL_ENABLE_SJPEG=false -DJPEGXL_ENABLE_EXAMPLES=false -DJPEGXL_ENABLE_BENCHMARK=false -DJPEGXL_ENABLE_FUZZERS=false -DJPEGXL_BUNDLE_LIBPNG=false -DJPEGXL_ENABLE_JPEGLI_LIBJPEG=false -DCMAKE_C_FLAGS="$CFLAGS" -DCMAKE_CXX_FLAGS="$CXXFLAGS"
+make -j$(nproc)
+make install
+popd
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/oss-fuzz/build_fuzzers.sh
^
|
(renamed from upstream/Magick++/fuzz/build_fuzzers.sh)
|
[-]
[+]
|
Added |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/oss-fuzz/build_imagemagick.sh
^
|
@@ -0,0 +1,6 @@
+#!/bin/bash -eu
+
+autoreconf -fiv
+./configure --prefix="$WORK" --disable-shared --disable-docs --with-jxl CFLAGS="$CFLAGS -I$WORK/include" LIBS="-L$WORK/lib -lbrotlidec -lbrotlienc -lbrotlicommon -lde265" PKG_CONFIG_PATH="$WORK/lib/pkgconfig"
+make "-j$(nproc)"
+make install
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/oss-fuzz/crop_fuzzer.cc
^
|
(renamed from upstream/Magick++/fuzz/crop_fuzzer.cc)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/oss-fuzz/dictionaries/mvg.dict
^
|
(renamed from upstream/Magick++/fuzz/dictionaries/mvg.dict)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/oss-fuzz/encoder_format.h
^
|
(renamed from upstream/Magick++/fuzz/encoder_format.h)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/oss-fuzz/encoder_fuzzer.cc
^
|
(renamed from upstream/Magick++/fuzz/encoder_fuzzer.cc)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/oss-fuzz/encoder_gradient_fuzzer.cc
^
|
(renamed from upstream/Magick++/fuzz/encoder_gradient_fuzzer.cc)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/oss-fuzz/encoder_label_fuzzer.cc
^
|
(renamed from upstream/Magick++/fuzz/encoder_label_fuzzer.cc)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/oss-fuzz/encoder_list.cc
^
|
(renamed from upstream/Magick++/fuzz/encoder_list.cc)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/oss-fuzz/encoder_pattern_fuzzer.cc
^
|
(renamed from upstream/Magick++/fuzz/encoder_pattern_fuzzer.cc)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/oss-fuzz/encoder_plasma_fuzzer.cc
^
|
(renamed from upstream/Magick++/fuzz/encoder_plasma_fuzzer.cc)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/oss-fuzz/encoder_radial-gradient_fuzzer.cc
^
|
(renamed from upstream/Magick++/fuzz/encoder_radial-gradient_fuzzer.cc)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/oss-fuzz/encoder_utils.cc
^
|
(renamed from upstream/Magick++/fuzz/encoder_utils.cc)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/oss-fuzz/encoder_xc_fuzzer.cc
^
|
(renamed from upstream/Magick++/fuzz/encoder_xc_fuzzer.cc)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/oss-fuzz/enhance_fuzzer.cc
^
|
(renamed from upstream/Magick++/fuzz/enhance_fuzzer.cc)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/oss-fuzz/huffman_decode_fuzzer.cc
^
|
(renamed from upstream/Magick++/fuzz/huffman_decode_fuzzer.cc)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/oss-fuzz/main.cc
^
|
(renamed from upstream/Magick++/fuzz/main.cc)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/oss-fuzz/ping_fuzzer.cc
^
|
(renamed from upstream/Magick++/fuzz/ping_fuzzer.cc)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/oss-fuzz/rotate_fuzzer.cc
^
|
(renamed from upstream/Magick++/fuzz/rotate_fuzzer.cc)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/oss-fuzz/utils.cc
^
|
(renamed from upstream/Magick++/fuzz/utils.cc)
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/www/jp2.html
^
|
@@ -116,7 +116,7 @@
<p>Specify a subsampling factor:</p>
-<pre class="bg-light text-dark mx-4 cli"><samp>magick wizard.png -colorspace YUV -sampling-factor 2,2 wizard.jp2 </samp></pre>
+<pre class="bg-light text-dark mx-4 cli"><samp>magick wizard.png -colorspace YUV -sampling-factor 2:2 wizard.jp2 </samp></pre>
<p>Save a tiled JPEG-2000 image:</p>
@@ -190,4 +190,4 @@
<script src="assets/magick.js" ></script>
</body>
</html>
-<!-- Magick Cache 6th December 2023 12:28 -->
\ No newline at end of file
+<!-- Magick Cache 6th December 2023 12:28 -->
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/www/links.html
^
|
@@ -164,10 +164,10 @@
<h2><a class="anchor" id="other-projects"></a>Other Projects</h2>
<ul>
- <dd class="col-md-8"><a href="https://urban-warrior.org/WizardsToolkit">Wizard's Toolkit</a></dd>
+ <dd class="col-md-8"><a href="https://urban-warrior.org">Wizard's Toolkit</a></dd>
<dd class="col-md-8"><a href="https://github.com/MolotovCherry/Android-ImageMagick7">ImageMagick API on the Android Platform</a></dd>
<dd class="col-md-8"><a href="../archive/iOS/">ImageMagick API on the iOS / iPhone Platform</a></dd>
- <dd class="col-md-8"><a href="https://urban-warrior.org/">The Tao of the Spiritual Warrior</a></dd>
+ <dd class="col-md-8"><a href="https://spiritual-warrior.org">The Tao of the Spiritual Warrior</a></dd>
</ul>
</div>
</div>
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick-7.1.1.28+obs1.0.tar.xz/upstream/www/mirror.html
^
|
@@ -103,7 +103,7 @@
<dd><a href="https://ftp.acc.umu.se/mirror/imagemagick.org/ftp/" target="_blank">https://ftp.acc.umu.se/mirror/imagemagick.org/ftp/</a></dd>
<dd><a href="rsync://ftp.acc.umu.se/mirror/imagemagick.org/ftp/">rsync://ftp.acc.umu.se/mirror/imagemagick.org/ftp/</a></dd>
<dt>Russia</dt>
- <dd><a href="https://mirror.surf/imagemagick/ " target="_blank">https://mirror.surf/imagemagick/ </a></dd>
+ <dd><a href="https://mirror.su/imagemagick/ " target="_blank">https://mirror.su/imagemagick/ </a></dd>
<dt>Switzerland</dt>
<dd><a href="https://mirror.metanet.ch/imagemagick/" target="_blank">https://mirror.metanet.ch/imagemagick/</a></dd>
<dt>United States</dt>
@@ -113,7 +113,7 @@
<dd><a href="http://www.macports.org/ports.html?by=name&substr=imagemagick" target="_blank">http://www.macports.org/ports.html?by=name&substr=imagemagick</a> (Mac OS X)</dd>
<dd><a href="http://hpux.connect.org.uk/hppd/hpux/X11/Viewers/" target="_blank">http://hpux.connect.org.uk/hppd/hpux/X11/Viewers/</a> (HP-UX 10.20 and 11.00)</dd>
<dt>Rsync Mirrors </dt>
- <dd><a href="rsync://mirror.surf/imagemagick/">rsync://mirror.surf/imagemagick//</a></dd>
+ <dd><a href="rsync://mirror.su/imagemagick/">rsync://mirror.su/imagemagick//</a></dd>
<dd><a href="rsync://rsync.is.co.za/IS-Mirror/mirror.imagemagick.org/">rsync://rsync.is.co.za/IS-Mirror/mirror.imagemagick.org/</a></dd>
<dd><a href="rsync://mirror.imagemagick.org/magick_html">rsync://mirror.imagemagick.org/magick_html/</a> (Web site mirror)</dd>
<dd><a href="rsync://mirror.imagemagick.org/magick_ftp">rsync://mirror.imagemagick.org/magick_ftp/</a> (FTP mirror)</dd>
@@ -148,4 +148,4 @@
<script src="assets/magick.js" ></script>
</body>
</html>
-<!-- Magick Cache 6th December 2023 11:12 -->
\ No newline at end of file
+<!-- Magick Cache 6th December 2023 11:12 -->
|
[-]
[+]
|
Changed |
_service:tar_git:ImageMagick.yaml
^
|
@@ -1,7 +1,7 @@
Name: ImageMagick
### DO NOT FORGET TO BUMP mfr_revision below !!!
### Also, the builds script needs this to not be a macro
-Version: 7.1.1.23
+Version: 7.1.1.28
Release: 1.1
Summary: Viewer and Converter for Images
Group: Applications/Multimedia
@@ -39,7 +39,7 @@
Macros:
#- 'debug_build;0'
- - 'mfr_revision;23'
+ - 'mfr_revision;28'
- 'maj;7'
- 'mfr_version;%{maj}.1.1'
- 'quantum_depth;16'
@@ -134,32 +134,10 @@
# --without-pango
- --without-raw
- --without-x
- # --without-zstd
- --with-zstd
- # from: https://fedoraproject.org/wiki/Changes/Harden_All_Packages
- #
- # CFLAGS="$RPM_OPT_FLAGS -fPIC -pie"
- # CXXFLAGS="$RPM_OPT_FLAGS -fPIC -pie"
- #
- # export CFLAGS
- # export CXXFLAGS
- # 3c. Enable only -z now manually for your package:
- #
- # CFLAGS="$RPM_OPT_FLAGS -Wl,-z,relro -Wl,-z,now"
- # CXXFLAGS="$RPM_OPT_FLAGS -Wl,-z,relro -Wl,-z,now"
- #
- # export CFLAGS
- # export CXXFLAGS
- # 3d. Enable 3b and 3c above manually for your package:
- #
- # CFLAGS="$RPM_OPT_FLAGS -fPIC -pie -Wl,-z,relro -Wl,-z,now"
- # CXXFLAGS="$RPM_OPT_FLAGS -fPIC -pie -Wl,-z,relro -Wl,-z,now"
- #
- # export CFLAGS
- # export CXXFLAGS
-
-Builder: "none"
+Check: true
+Builder: none
SetupOptions: '-q -n %{name}-%{version}/upstream'
Files:
- '%license LICENSE'
|