Можно ли сделать альфу прозрачным PNG с C#?

Ошибка синтаксиса: ошибка синтаксиса, неожиданный T_VARIABLE

Возможный сценарий

Я не могу найти, где мой код поступил не так. Вот моя полная ошибка:

Ошибка анализа: ошибка синтаксиса, неожиданный T_VARIABLE в строке x

Что я пытаюсь

$sql = 'SELECT * FROM dealer WHERE id="'$id.'"';

Ответ

Ошибка анализа: проблема с синтаксисом вашей программы, например, оставляя точку с запятой от конца инструкции или, как и в случае выше, пропускает оператор ..

Простыми словами это синтаксическая ошибка, означающая, что в вашем коде есть что-то, что помешает правильному анализу и поэтому работает.

Что вам нужно сделать, так это внимательно проверить строки, где ошибка для любых простых ошибок.

Это сообщение об ошибке означает, что в строке x файла интерпретатор PHP ожидал увидеть открытую круглую скобку, но вместо этого он встретил нечто, называемое T_VARIABLE. Эта вещь T_VARIABLE называется token. Это способ интерпретации PHP-интерпретатора различных фундаментальных частей программ. Когда интерпретатор читает в программе, он переводит то, что вы написали, в список токенов. Где бы вы ни разместили переменную в своей программе, в списке интерпретатора есть токен T_VARIABLE.

Хорошо читается: Список токенов парсера

So убедитесь, что вы включили хотя бы E_PARSE в своем php.ini. Ошибки анализа не должны существовать в производственных сценариях.

Я всегда рекомендовал добавить следующий оператор при кодировании:

error_reporting(E_ALL);

Отчет об ошибках PHP

Также неплохо использовать среду IDE, которая позволит вам знать ошибки разбора при наборе текста. Вы можете использовать:

  1. NetBeans (прекрасный мир красоты, бесплатное программное обеспечение) (лучший, на мой взгляд)
  2. PhpStorm (дядя Гордон любит это: P, платный план, содержит проприетарное и бесплатное программное обеспечение)
  3. Eclipse (красота и зверь, бесплатное программное обеспечение)

Вопросы, относящиеся:

34
задан Adaline Simonian 13 August 2017 в 08:17
поделиться

9 ответов

Чтобы исправить текст «блочность», нельзя просто сделать ...

g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;

после этой строки ...

Graphics g = Graphics.FromImage( (Image) image );
14
ответ дан 27 November 2019 в 17:12
поделиться

IIRC необходимо определить PixelFormat в растровом конструкторе.

6
ответ дан leppie 27 November 2019 в 17:12
поделиться

Можно использовать метод LockBits на Битовом массиве, чтобы возвратить объект BitmapData и установить Альфу для каждого пикселя сами (Вы могли также использовать GetPixel и SetPixel, но эти методы являются безумно медленными). См. этот ответ .

я знаю, что это работает наверняка, потому что, когда я сначала начал использовать технику, я устанавливал альфа-значение к 0, таким образом, ни один из цветов, которые я выбирал, не был видим.

Редактирование: вот образец эффекта линзы подозрительного взгляда, сделанного полностью в.NET (использующий LockBits):

сопроводительный текст http://www.freeimagehosting.net/uploads/21ca8300cc.jpg

6
ответ дан Community 27 November 2019 в 17:12
поделиться

Возможно, можно найти ответ в исходном коде этой статьи CodeProject:

На Пиксельную Альфа-Смесь в C#

1
ответ дан splattne 27 November 2019 в 17:12
поделиться

Для текста, сглаживающего игру вокруг со значениями в Графике. TextRenderingHint. Я советовал бы для не использования ClearType, потому что это только обнаружится хороший на ЖК-мониторах (не CRT) и не могло бы работать из-за вращения.

P.S. Это - Vilx-, не Vlix.: D

5
ответ дан Vilx- 27 November 2019 в 17:12
поделиться

Оказывается, что Microsoft имеет новую библиотеку динамического изображения для сети как часть Asp. Сетевое содержание на CodePlex:

http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=16449

, К сожалению, это немного очень, для какого я хочу. Используя небезопасный код я могу прокрутить свою собственную альфа-прозрачность, но это слишком медленно, учитывая использование этого кода в качестве части веб-приложения высокого использования.

это - просто ошибка в GDI MS +.Net реализация?

0
ответ дан Keith 27 November 2019 в 17:12
поделиться

Извините, я не считал Ваш вопрос достаточно тщательно.

я знаю, что успешно нарисовал повернутый текст на цветном фоне, не видя ни один из эффектов искажения в Ваших примерах. Когда я возвратился для рассмотрения моего кода, я понял, что рисовал повернутый текст с помощью логического шрифта, который приятно обертывается в Microsoft. Пространство имен WindowsCE.Forms. Эта техника устанавливает угол рисунка как свойство логического шрифта (таким образом, Вы не называете TranslateTransform или RotateTransform).

За пределами мира Windows CE, Вы имеете к PInvoke для создания логического шрифта (я никогда не делал этого, и я не мог найти хороший пример быстро). Я не знаю, как хорошо это работало бы, но я знаю наверняка, что это нарисует повернутый текст без странных эффектов искажения, которые Вы видите. Я думаю наверняка, что это - ошибка в GDI + (или просто что-то, что они не думали, что любой будет когда-либо действительно использовать).

альтернативный подход, который мог бы даже работать лучше, чем логический шрифт, должен обычно рисовать текст на фоне цветного прямоугольника (просто достаточно большой для содержания текста), тогда поворачивать-и-копировать прямоугольник на основное изображение. Графика. DrawImage, кажется, не в состоянии сделать, вращение, но этот эффект легко реализовать использование LockBits.

1
ответ дан MusiGenesis 27 November 2019 в 17:12
поделиться

Необходимо, по крайней мере, определить формат пикселя на 32 бита (исключая: PixelFormat. Format32bppArgb) при создании битового массива иначе GDI + не может управлять прозрачностью.

Для настройки получающегося файла при сохранении можно использовать, Сохраняют с ImageCodecInfo и EncoderParameters.

0
ответ дан thinkbeforecoding 27 November 2019 в 17:12
поделиться

Или, Вы могли просто представить текст к непрозрачному PNG, но использовать цвет фона (вместо белого), который соответствует цвету фона ячейки.

0
ответ дан MusiGenesis 27 November 2019 в 17:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: