Генерирование изображений-заглушек / Хабр
Сегодня мне кинули ссылку на прикольный сервис для быстрого генерирования изображений-заглушек. Может пригодиться для html-верстки. На мой взгляд, это удобно тем, кто и так использует заглушки — экономит время при вёрстке, т.к. сами заглушки уже готовы. Можно цвета/размеры подбирать, меняя только числа/буквы в коде, не отвлекаясь на сам файл картинки — и сразу видеть эффект. И сами размеры видеть написанными, если нужно, чтоб к коду не возвращаться для проверки. Или вместо размеров можно текст добавить, чтоб всегда знать, для чего эта заглушка (типа «Бан(н)ер» или там «Лого», или «Фотография»).На сервисе не нужна регистрация — и вообще на сайт можно не заходить, чтобы его использовать. Пишете сразу у себя в коде, например:
<img src=»http://placehold.it/350×50″ />и получаете:
Update. Благодаря усилиям k0rv1n, найден вариант этого сервиса, только лучше 🙂
Во-первых, там поддерживается кириллица.
Автор dummyimage.com — тот же Russell Heimlich, что и у placehold.it. У placehold.it есть ещё один автор, но будем считать, что он делал дизайн (дизайн там правда круче, но видимо как раз из-за понтового шрифта Unicode и не выходил).
Примеры (см. под хабракатом) я поменял с placehold.it на dummyimage.com, раз уж он функциональнее…
Итак, примеры:
1. Для квадратной заглушки достаточно одного числа:
<img src=»http://dummyimage.com/120» />
<img src=»http://dummyimage.com/100» />
<img src=»http://dummyimage.com/80» />
2. Меняем цвет (всегда должен идти после размера, иначе не сработает):
<img src=»http://dummyimage.com/150×60/c0c0c0» />Результат:
<img src=»http://dummyimage.com/150×60/00dd00» />
<img src=»http://dummyimage.com/150×60/a6a6ff» />
3. Меняем формат (добавляем расширение к любой части url-а; поддерживается 3 формата — gif, jpg/jpeg, png):
<img src=»http://dummyimage.com/150×60/99ccccРезультат:.gif» />
<img src=»http://dummyimage.com/150×60.jpg/99cccc» />
<img src=»http://dummyimage.com/150×60/99cccc.jpeg» />
<img src=»http://dummyimage.com/150×60.png/99cccc» />
4. Добавляем текст (вместо пробела — плюс):
<img src=»http://dummyimage.com/150×60/99cccc.gif&text=The+image!» />Результат:
<img src=»http://dummyimage.com/150×60/99cccc.jpg&text=The+image!» />
<img src=»http://dummyimage.com/150×60.png/99cccc&text=The+image!» />
<img src=»http://dummyimage.com/150×60.png/99cccc&text=Кириллица» />
5. Меняем цвет текста (он идёт после цвета самой заглушки):
<img src=»http://dummyimage.Результат:com/150×60/99cccc/ffffff.gif&text=The+image!» />
<img src=»http://dummyimage.com/150×60/99cccc.jpg/0b0b0b&text=The+image!» />
<img src=»http://dummyimage.com/150×60.png/99cccc/aa00aa&text=The+image!» />
P.S. Кто может предложить адекватный перевод слова «плейсхолдер«? nooze предложил «заглушку» 🙂
P.P.S. Авторы сервиса
Картинка заглушка. Мебельная тематика • фриланс-работа для специалиста • категория Дизайн сайтов ≡ Заказчик Ирина Поповская
6 из 6
проект завершен
публикация
прием ставок
утверждение условий
резервирование
выполнение проекта
проект завершен
Здравствуйте. Необходимо подобрать варианты картинок с необходимым текстом по мебельной тематике.
Картинка будет устанавливаться на сайт перед открытием.
Картинка заглушка. Мебельная тематика
Качество
Профессионализм
Стоимость
Контактность
Сроки
Рекомендую. Работа выполнена в течении часа!
Отзыв фрилансера о сотрудничестве с Ириной Поповской
Картинка заглушка. Мебельная тематикаОплата
Постановка задачи
Четкость требований
Контактность
Начнём все хорошо. Оперативно завершился проект. Буду рад снова помочь.
Василь Білокінський | Сейф
- Ставки 15
дата онлайн рейтинг стоимость время выполнения
- фрилансер больше не работает на сервисе
Победившая ставка1 день300 UAH Победившая ставка1 день300 UAHИрино Добрый день!
Если я правильно понимаю задание, то сделаю сегодня.
Пишите в частном — поговорим и начнем
Ірино, доброго дня!Якщо я правильно розумію завдання, то зроблю сьогодні.
Пишіть в приват — обговоримо і почнемоПоказать оригинал
Перевести
5173
84 0
2 дня500 UAHDmytro S. 2 дня500 UAHЗдравствуйте, Ирина!
Подберу картинку (фото) для заглушки.
Работаю в Figma, Adobe Photoshop.
Обсудим подробности?Мое портфолио:
Freelancehunt
Dribbble- 2 дня300 UAH 2 дня300 UAH
Здравствуйте!
Могу приступить к работе уже сейчас, подберу и сделаю картинки быстро и качественно. Есть многолетний опыт в этой сфере.
Пишите, обсудим детали! Буду рада сотрудничеству с вами.
ставка скрыта фрилансером
- 1 день200 UAH 1 день200 UAH
С удовольствием выполню.
Могу подобрать картинки.
Могу нанести на картинки тексты.
Срок выполнения 1 день. 2 дня300 UAH 2 дня300 UAHДобрый вечер. Сделаю картинки- заглушки. Портфолио Freelancehunt
- 1 день200 UAH 1 день200 UAH
Привет!
Веду дизайн cоц. сетей. Ссылки отправлю в личные сообщения.
Делаю рекламу для таргета и гугл рекламы. Примеры моих работ есть в портфолио.
Портфолио:
https://inlnk.ru/bnAMe 1 день200 UAH 1 день200 UAHГотов приступить прямо сейчас!
Буду рад сотрудничать.
Behance- 1 день300 UAH 1 день300 UAH
Здравствуйте, интересный проект, буду рад сотрудничать
Мое портфолио — Behance
- 1 день200 UAH 1 день200 UAH
Здравствуйте Ирина!
С радостью разработаю для вас картинку
Уверяю вас вы останетесь довольны и мы продолжим сотрудничатьС нетерпением жду вашего ответа
- фрилансер больше не работает на сервисе
- 1 день250 UAH 1 день250 UAH
Добрый день!
Готова подобрать варианты картинок сегодня.
Работаю в Figma.
Мои работы: Freelancehunt ставка скрыта фрилансером
ставка скрыта фрилансером
1 год назад
160 просмотров
- дизайн
- Web-дизайн
- дизайн сайта
- графический дизайн
ruby on rails — заглушить URL-адрес изображения и вернуть изображение
спросил
Изменено 9 месяцев назад
Просмотрено 2к раз
Как заглушить вызов URL-адреса, например http://www.
example.com/images/123.png, и вернуть изображение с именем 123.png?
Я использую Rails 3.2, Carrierwave. Я пробовал Fakeweb, но немного запутался.
- ruby-on-rails
- Carrierwave
- fakeweb
После нескольких часов исследований оказалось, что все просто:
FakeWeb.register_uri(:get, string_or_regxp_of_uri,
тело: SupportFiles.uploaded_file("square.jpg"),
content_type: 'изображение/jpg')
Моя проблема сложнее:
Я тестирую аватар FB и получил самое белое расширение
Приведенный выше код НЕ будет работать, так как расширение отсутствует
(URL аватара FB: https://graph.facebook.com/123 /картинка)
Но настоящий аватар FB будет перенаправлять на CDN или что-то с расширением
Так что вам нужно добавить еще одну заглушку:
# Зарегистрируйте поддельное удаленное изображение fake_avatar_uri = "https://graph.facebook.com/fake_avatar.jpg" # Перенаправление на поддельный uri FakeWeb.register_uri(:get, %r|https://graph\.facebook\.com/|, статус: ["301", "Перемещено навсегда"], местоположение: fake_avatar_uri) # Подача поддельного изображения для поддельного uri FakeWeb.register_uri(:get, fake_avatar_uri, тело: SupportFiles.uploaded_file("square.jpg"), content_type: 'изображение/jpg')
Модуль SupportFiles (не написанный мной: P):
требуется 'rack/test/uploaded_file'
модуль SupportFiles
расширить ActiveSupport::Concern
включено делать
пусть(:an_image) сделать
open_file("квадрат.jpg")
конец
конец
def open_file(имя файла)
File.open(support_file_path(имя файла))
конец
# идея украдена из ActionDispatch::TestProcess#fixture_file_upload
def загруженный_файл (имя файла)
Rack::Test::UploadedFile.new(support_file_path(имя файла))
конец
функция_модуля : загруженный_файл
защищенный
def support_file_path (имя файла)
Rails.root.join("spec/support/files", имя файла)
конец
module_function :support_file_path
конец
Чтобы имитировать URL-адрес внешнего изображения с файлом, вы можете заглушить запрос с любым объектом IO , например:
описать '#create' do
он «создает элемент»
io_object = fix_file_upload('images/1.
png', 'image/png').tempfile.to_io
stub_request(:get, 'http://www.example.com/images/123.png')
.to_return (статус: 200, тело: io_object, заголовки: {})
параметры = {
имя: "Хороший предмет",
remote_file_url: 'http://www.example.com/images/123.png')
}
api_post (путь к элементам, параметры)
конец
конец
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя электронную почту и парольОпубликовать как гость
Электронная почтаОбязательно, но не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
reactjs — Импорт изображений ломает шуточный тест
спросил
Изменено 5 месяцев назад
Просмотрено 63к раз
Компоненты In React, импортирующие активы (например, импортировать логотип из «../../../assets/img/logo.png) выдает такую ошибку
({«Объект.»:функция(модуль,экспорт,требовать,__имя_каталога,__имя_файла,глобальный,шутка){�PNG
SyntaxError: Неверный или неожиданный токен в ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:305:17)
моя конфигурация шутки
"шутка": {
"testRegex": ".*\\.spec\\.js$",
"расширения_файла_модуля": [
"ДжС",
"JSX",
"жсон"
],
"каталоги модулей": [
"узловые_модули",
"источник",
"ресурсы"
],
"moduleNameMapper": {
"\\.
(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$/": "/ __mocks__/fileMock.js",
"\\.(css|less|scss)$": "/__mocks__/styleMock.js"
},
"многословный": правда,
"залог": правда
}
что я упустил?
- реакция
- тестирование
- веб-пакет
- jestjs
Когда вы импортируете файлы изображений, Jest пытается интерпретировать двоичные коды изображений как .js, поэтому возникают ошибки.
Единственный выход — имитировать ответ по умолчанию каждый раз, когда шутка видит импорт изображения!
Как нам это сделать?
- сначала вы говорите Jest запускать фиктивный файл каждый раз, когда встречается импорт изображения. вы делаете это, добавляя приведенный ниже ключ в файл package.json
"шутка": {
"moduleNameMapper": {
"\\.(jpg|ico|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": " /mocks/fileMock.
js",
"\\.(css|less)$": "/mocks/fileMock.js"
}
}
Примечание : если у вас уже есть ключ "Jest" , просто добавьте в него дочерний элемент "moduleNameMapper"
- , наконец, создайте папку
mocksв корне и создайте 9 0042 файлMock.js файл внутри него. заполните файл фрагментом ниже
модуль.экспорт = '';
Примечание : Если вы используете es6, вы можете использовать export default ''; , чтобы избежать флага Eslint
, когда вы закончите с вышеуказанными шагами, вы можете перезапустить тест и все готово.
Примечание . не забудьте добавить различные расширения ваших файлов изображений в moduleNameMapper , чтобы их можно было высмеивать.
Надеюсь, я смог помочь. #ваше здоровье!
6 Для всех, кто занимается этой проблемой.
Вы должны установить npm install --save-dev identity-obj-proxy , чтобы получить необходимые зависимости.
"шутка": {
"moduleNameMapper": {
".+\\.(css|стиль|меньше|sass|scss|png|jpg|ttf|woff|woff2)$": "identity-obj-proxy"
}
}
1У меня была такая же проблема, и я решил ее следующим образом:
-
npm install -D jest-transform-stub - Затем в package.json я добавил следующее преобразование:
"шутка": {
...
"преобразовать": {
...
".+\\.(css|scss|png|jpg|svg)$": "шутка-преобразование-заглушка"
0 У меня была такая же проблема! Я не уверен, что это тот же случай, что и в исходном вопросе, но для меня шутка все еще каким-то образом пыталась загрузить изображения как JS и пыталась их проанализировать, в то время как у меня были файлы, соответствующие расширениям изображений, сопоставленным с макетом в 9@/(. Для меня оказалось, что когда я импортировал изображения в свои компоненты, путь был примерно таким: ‘@/assets/someImage.jpg’. Однако кажется, что это сначала будет соответствовать первому регулярному выражению, охватывающему 9@/(.*)\\.(?!jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$’ :
‘<корневой_каталог>/src/$1′,
‘.*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$’:
‘ Добавление следующей строки в файл jest. Пример: Если вы хотите использовать jest с веб-пакетом, вам нужно явно настроить его соответствующим образом. Взгляните на это руководство здесь: https://jestjs.io/docs/webpack Для тех, кто использует создать файл с именем , а затем добавьте эти коды к 9.+\\.(bmp|gif|jpg|jpeg|mp4|png|psd|svg|webp)$’: require.resolve(
‘../node_modules/react-native/jest/assetFileTransformer.js’,
),
}, Если вы не используете React Native, необходимо создать файл https://github.com/facebook/react-native/blob/main/jest/assetFileTransformer.js в своем проекте и изменить путь на и добавьте в jest.config.js следующее: это сработало для меня. У меня ничего не сработало, поэтому я заменил
«крепление» с «мелководьем» везде, и теперь оно работает нормально.
*)’:
‘<корневой_каталог>/src/$1′,
‘\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$’:
‘
config.js помогло мне пройти тест, "\\.(jpg|jpeg|png)$": "identity-obj-proxy",
moduleNameMapper: {
"\\.(css)$": "identity-obj-proxy",
"\\.(jpg|jpeg|png)$": "идентификация-obj-прокси",
},
Vue test util в Nuxt 2 и столкнулся с вопросом или этой проблемой ({"Object. fileTransformer.js в test/unit , а затем добавьте следующие коды: const path = require('path')
модуль.экспорт = {
процесс (источник, имя файла, конфигурация, параметры) {
return 'module.exports = ' + JSON.
stringify (path.basename (имя файла)) + ';'
},
}
require.resolve npm install --save-dev identity-obj-proxy
moduleNameMapper: {
"\\.(css)$": "identity-obj-proxy",
"\\.(jpg|jpeg|png)$": "идентификация-obj-прокси",
},
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.

com/150×60/a6a6ff» />
com/150×60/99cccc/ffffff.gif&text=The+image!» />

Делаю рекламу для таргета и гугл рекламы. Примеры моих работ есть в портфолио.
register_uri(:get, %r|https://graph\.facebook\.com/|,
статус: ["301", "Перемещено навсегда"],
местоположение: fake_avatar_uri)
# Подача поддельного изображения для поддельного uri
FakeWeb.register_uri(:get, fake_avatar_uri,
тело: SupportFiles.uploaded_file("square.jpg"),
content_type: 'изображение/jpg')
png', 'image/png').tempfile.to_io
stub_request(:get, 'http://www.example.com/images/123.png')
.to_return (статус: 200, тело: io_object, заголовки: {})
параметры = {
имя: "Хороший предмет",
remote_file_url: 'http://www.example.com/images/123.png')
}
api_post (путь к элементам, параметры)
конец
конец
(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$/": "
js",
"\\.(css|less)$": "