Я верю, если Вы, которых setenv MALLOC_CHECK_
к 2, glibc позвонит abort()
, когда он обнаружит "свободный (): недопустимый указатель" ошибка. Отметьте запаздывающее подчеркивание от имени переменной среды.
, Если MALLOC_CHECK_
1 glibc, распечатает "свободный (): недопустимый указатель" (и подобный printfs для других ошибок). Если MALLOC_CHECK_
будет 0, то glibc тихо проигнорирует такие ошибки и просто возвратится. Если MALLOC_CHECK_
будут 3 glibc, то будет печатать сообщение и затем звонить abort()
. Т.е. это - битовая маска.
можно также звонить mallopt(M_CHECK_ACTION, arg)
с аргументом 0-3 и получить тот же результат как с MALLOC_CHECK_
.
, Так как Вы видите "свободный (): недопустимый указатель" сообщение, я думаю, что необходимо уже быть установкой MALLOC_CHECK_
или вызовом mallopt()
. По умолчанию glibc не печатает те сообщения.
Что касается того, как отладить, это, устанавливая обработчик для [1 110] является, вероятно, лучший способ продолжиться. Можно установить точку останова в обработчике или сознательно инициировать дамп ядра.
Сначала вы рисуете цвет, а затем рисуете изображение поверх него. Если изображение не является частично прозрачным, оно полностью перекрывает цвет фона. Я рекомендую сначала попытаться нарисовать исходное изображение, а затем нарисовать его красным, используя kCGBlendModeHue
.
Я не уверен, зачем вы переворачиваете и переводите свой контекст. Ваша фотография перевернута?
Хорошо, как это?
На этапе создания вашего актива (НЕ динамически во время работы приложения) инвертируйте цветовую схему ваших изображений. Часть, которая теперь стала белой -> прозрачная. Часть, которая теперь прозрачна -> независимо от фона страницы.
Под каждым изображением поместите пустой белый вид того же размера. Если вы хотите сделать изображение красным, измените цвет этого пустого белого изображения на красный.
Это выполнимо?
Если вы хотите сделать изображение красным, измените цвет этого пустого белого поля на красный.Это выполнимо?
Если вы хотите сделать изображение красным, измените цвет этого пустого белого изображения на красный.Это выполнимо?
Если установить для backgroundColor UIImageView значение [UIColor redColor], части исходного PNG, которые были прозрачными , станут красными. В качестве альтернативы вы можете попробовать добавить полупрозрачный UIView с красным цветом фона в качестве подвида изображения. Это добавит красной дымки к виду, на котором отображается изображение.
Измените режим наложения на multiply , и ваш код будет работать:
CGContextSetBlendMode(ctx, kCGBlendModeMultiply);